diff --git a/erpnext/education/doctype/content/content.json b/erpnext/education/doctype/content/content.json
index ff87d0b..053372f 100644
--- a/erpnext/education/doctype/content/content.json
+++ b/erpnext/education/doctype/content/content.json
@@ -120,39 +120,6 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "default": "0", 
-   "fieldname": "is_published", 
-   "fieldtype": "Check", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Is Published", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_in_quick_entry": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
    "fieldname": "column_break_5", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -548,7 +515,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-10-16 13:03:35.328063", 
+ "modified": "2018-10-16 15:50:59.193504", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Content", 
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 493a876..9314da2 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -133,19 +133,68 @@
 	try:
 		activity_name = frappe.get_all("Course Activity", filters={"student_id": get_student_id(frappe.session.user), "program_name": program})[0]
 	except IndexError:
-		print("------ Got No Doc ------")
 		return True, None
 	else:
-		print("------ Got A Doc ------")
 		return None, frappe.get_doc("Course Activity", activity_name)
 
+def get_contents_in_course(course_name):
+	try:
+		course_doc = frappe.get_doc("Course", {"name":course_name, "is_published": True})
+		return [frappe.get_doc("Content", content.content) for content in course_doc.get_all_children()]
+	except frappe.DoesNotExistError:
+		return None
+
+def get_courses_in_program(program):
+	try:
+		program_doc = frappe.get_doc("Program", program)
+		if program_doc.is_published:
+			course_list = [frappe.get_doc("Course", course.course_name) for course in program_doc.get_all_children()]
+			return [course for course in course_list if course.is_published == True]
+		else:
+			return None
+	except frappe.DoesNotExistError:
+		return None
+
+def get_program():
+	program_list = frappe.get_list("Program", filters={"is_published": is_published})
+	if program_list:
+		return program_list
+	else:
+		return None
+
+def get_featured_program():
+	featured_list = frappe.get_list("Program", filters={"is_published": True, "is_featured": True})
+	if featured_list:
+		return featured_list
+	else:
+		return None
+
+@frappe.whitelist()
+def add_course_enrollment(course, email):
+	student_id = get_student_id(email)
+	if not get_course_enrollment(course, email):
+		enrollment = frappe.get_doc({
+			"doctype": "Course Enrollment",
+			"student": student_id,
+			"course": course
+		})
+		enrollment.save()
+		frappe.db.commit()
+		return enrollment
+
+def get_course_enrollment(course, email):
+	student_id = get_student_id(email)
+	try:
+		return frappe.get_list("Course Enrollment", filters={'course':course, 'student':student_id})[0]
+	except IndexError:
+		return None
+
 def get_student_id(email):
 	"""Returns Student ID, example EDU-STU-2018-00001 from email address
 	
 	:params email: email address of the student"""
 	try:
-		student = frappe.get_list('Student', filters={'student_email_id': email})[0].name
-		return student
+		return frappe.get_list('Student', filters={'student_email_id': email})[0].name
 	except IndexError:
 		frappe.throw("Student Account with email:{0} does not exist".format(email))
 
