diff --git a/erpnext/www/lms/index.py b/erpnext/www/lms/index.py
index 16772a4..1bba69f 100644
--- a/erpnext/www/lms/index.py
+++ b/erpnext/www/lms/index.py
@@ -1,5 +1,6 @@
 from __future__ import unicode_literals
 import frappe
+import erpnext.education.utils as utils
 
 def get_context(context):
-    context.featured = frappe.get_all('Program', filters={'is_featured': 1}, fields=['program_name', 'program_code', 'description', 'hero_image'])
\ No newline at end of file
+    context.featured = utils.get_featured_programs()
\ No newline at end of file
diff --git a/erpnext/www/lms/program.html b/erpnext/www/lms/program.html
index 23f2e5c..5c1f159 100644
--- a/erpnext/www/lms/program.html
+++ b/erpnext/www/lms/program.html
@@ -6,23 +6,23 @@
 <meta name="keywords" content="ERP Software, Cloud ERP, Open Source ERP, Accounting Software, Online ERP, Online Accounting, ERP for small business, Learn ERP, ERPNext Academy, Learn ERPNext, Learn Accounting" />
 {% endblock %}
 
-{% macro course_card(name) %}
+{% macro course_card(course) %}
 <div class="card mt-3" data-list="getting-started">
     <div class='card-body'>
         <div class="row">
             <div class="course-details col-xs-8 col-sm-9 col-md-10">
-                <h5>{{ name }}</h5>
+                <h5>{{ course.name }}</h5>
                 <span class="course-list text-muted" id="getting-started">
                     Course Content
                     <ul class="mb-0 mt-1">
-                        {% for content in course_data[name] %}
-                        <li>{{ content }}</li>
+                        {% for content in course.course_content %}
+                            <li>{{ content.content }}</li>
                         {% endfor %}
                     </ul>
                 </span>
             </div>
             <div class='text-center col-xs-4 col-sm-3 col-md-2'>
-                <a class='btn btn-primary btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ name }}&content={{ course_data[name][0] }}">Start Course</a>
+                <a class='btn btn-primary btn-sm btn-block' href="/lms/course?program={{ program.program_code }}&course={{ course.name }}&content={{ course.course_content[0].content }}">Start Course</a>
             </div>
         </div>
     </div>
diff --git a/erpnext/www/lms/program.py b/erpnext/www/lms/program.py
index c61aee5..c5bf018 100644
--- a/erpnext/www/lms/program.py
+++ b/erpnext/www/lms/program.py
@@ -1,17 +1,8 @@
 from __future__ import unicode_literals
-from erpnext.education.utils import get_student_name
+import erpnext.education.utils as utils
 import frappe
 
 
 def get_context(context):
-    print(get_student_name(frappe.session.user))
     context.program = frappe.get_doc("Program", frappe.form_dict["program"])
-    context.course_list, context.course_data = get_courses(context)
-
-def get_courses(context):
-    course_data = {}
-    course_names = [program.course_name for program in context.program.courses]
-    program_courses = [frappe.get_doc('Course', name) for name in course_names]
-    for course_item in program_courses:
-        course_data[course_item.name] = [content_item.content for content_item in course_item.course_content if content_item.content_type in ('Video', 'Article')]
-    return course_names, course_data
+    context.course_list = utils.get_courses_in_program(frappe.form_dict["program"])
\ No newline at end of file
