diff --git a/bbcli/controllers/announcement_controller.py b/bbcli/controllers/announcement_controller.py
new file mode 100644
index 0000000000000000000000000000000000000000..c43810c9611b288d90adfa19460609a4087b13f5
--- /dev/null
+++ b/bbcli/controllers/announcement_controller.py
@@ -0,0 +1,41 @@
+from email.policy import default
+import click
+from bbcli.services import announcement_service
+from bbcli.views import announcement_view
+import os
+import requests
+
+from bbcli.utils.utils import set_cookies, set_headers
+
+@click.command(name='announcements')
+@click.argument('course_id', required=False)
+@click.argument('announcement_id', required=False)
+def list_announcements(course_id=None, announcement_id=None):
+
+    """
+    This command lists your announcements.
+    Either all announcements, all announcements from a spesific course, or one announcement.
+    """
+
+    bb_cookie = {
+        'name':'BbRouter',
+        'value': os.getenv("BB_ROUTER")
+    }
+    xsrf = {'X-Blackboard-XSRF': os.getenv('XSRF')}
+    user_name = os.getenv('BB_USERNAME')
+
+    session = requests.Session()
+    set_cookies(session, [bb_cookie])
+    set_headers(session, [xsrf])
+
+    response = None
+    
+    if announcement_id:
+        response = announcement_service.list_announcement(session, course_id, announcement_id)
+        announcement_view.print_course_announcements([response])
+    elif course_id:
+        response = announcement_service.list_course_announcements(session, course_id)
+        announcement_view.print_course_announcements(response)
+    else:
+        response = announcement_service.list_announcements(session, user_name)
+        announcement_view.print_announcements(response)
diff --git a/bbcli/controllers/course_controller.py b/bbcli/controllers/course_controller.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a919341c20b031cf4d4d03c7f9f83bb92510c78
--- /dev/null
+++ b/bbcli/controllers/course_controller.py
@@ -0,0 +1,41 @@
+from email.policy import default
+import click
+from bbcli.services import course_service
+from bbcli.views import course_view
+import os
+import requests
+from bbcli.utils.utils import set_cookies, set_headers
+
+
+#, help='List a spesific course with the corresponding id'
+@click.command(name='courses')
+@click.argument('course_id', required=False)
+@click.option('-a', '--all/--no-all', 'show_all', default=False, help='Lists all courses you have ever been signed up for')
+def list_courses(course_id=None, show_all=False):
+
+    """
+    This command lists your courses, by default only the courses from
+    two last semesters
+    """
+
+    bb_cookie = {
+        'name':'BbRouter',
+        'value': os.getenv("BB_ROUTER")
+    }
+    user_name = os.getenv('BB_USERNAME')
+
+    session = requests.Session()
+    set_cookies(session, [bb_cookie])
+
+    response = None
+    
+    if course_id:
+        response = course_service.list_course(session=session, course_id=course_id)
+        course_view.print_course(response)
+    else:
+        if show_all:
+            response = course_service.list_all_courses(session=session, user_name=user_name)
+        else:
+            response = course_service.list_courses(session=session, user_name=user_name)
+        course_view.print_courses(response)
+