diff --git a/bbcli/Services/ContentService.py b/bbcli/Services/ContentService.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b28b04f643122b019e912540f228c8ed20be9eeb 100644
--- a/bbcli/Services/ContentService.py
+++ b/bbcli/Services/ContentService.py
@@ -0,0 +1,3 @@
+
+
+
diff --git a/bbcli/Services/CourseService.py b/bbcli/Services/CourseService.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..320178a01debff7674582489f72a19d877fdf62a 100644
--- a/bbcli/Services/CourseService.py
+++ b/bbcli/Services/CourseService.py
@@ -0,0 +1,23 @@
+import json
+from typing import Dict, Any
+import requests
+
+
+# TODO: use /term endpoint to determine whether the course is an active term
+def list_courses(cookies: Dict, user_name: str) -> Any:
+    response = requests.get('https://ntnu.blackboard.com/learn/api/public/v1/users/userName:{}/courses'.format(user_name), cookies=cookies)
+    courses = json.loads(response.text)['results']
+    detailed_course_list = []
+    for course in courses:
+        detailed_course = list_course(cookies=cookies, course_id=course['courseId'])
+        detailed_course_list.append(detailed_course)
+
+    return detailed_course_list
+
+def list_course(cookies: Dict, course_id:str) -> Any:
+    response = requests.get('https://ntnu.blackboard.com/learn/api/public/v3/courses/{}'.format(course_id), cookies=cookies)
+    return json.loads(response.text)
+
+def list_favorite_courses(cookies: Dict, user_name: str) -> Any:
+    return "Blackboard rest api do not have an option for this yet"
+    # response = requests.get('https://ntnu.blackboard.com/learn/api/public/v1/users/userName:{}/courses'.format(user_name), cookies=cookies)