    def _problem_discrete_time_velocity_graph(self, *args, **kwargs):
        nsth = self.base_helper.get_newtonian_space_time_helper()
        
        
        problemTemplate = KProblemTemplate()
        problemTemplate.problem_type = kwargs.get('problem_type')
        
        result = nsth.get_discrete_time_velocity_graph()
        

        problem_s = f"""
        Write a commentary on the following {result['x_label']}({result['x']}) vs {result['y_label']}({result['y']}) graph.
        """
        problemTemplate.add_problem(problem_s.strip(), 'text/html')
        problemTemplate.add_problem(result['svg_str'], 'text/svg')
        
        
        soln_s = f"""
        <b>Let</b>
        {result['label_dict_str']}

        <b>The graph is shown for (x = {result['x_label']}, y = {result['y_label']}).</b>
        
        <b>The {result['area_label']} between two consecutive points</b>
        {result['rndm_area_stmt']}
        
        <b>Total {result['area_label']}</b>
        {result['total_area_stmt']}
        
        {result['total_delta_x_stmt']}

        {result['average_slope_stmt']}
        
        Similarly:
        {result['rndm_slope_stmt']}
        
        <b>{result['slope_label']} at a point:</b>
        {result['slope_at_a_point_stmt']}
        
        
        """
        problemTemplate.add_solution(soln_s.strip(), 'text/html')
        
        soln_s = f"""
        <h2>PLot Code:</h2>
        <pre>{result['plot_code']}</pre>
        """
        problemTemplate.add_solution(soln_s.strip(), 'text/html')
        problemTemplate.add_solution(result['svg_str'], 'text/svg')

        answer_s = f"""
        """
        problemTemplate.add_answer(answer_s.strip(), 'text/html')
        
        return problemTemplate
