diff --git a/app/templates/courses/mock1/course-details.jade b/app/templates/courses/mock1/course-details.jade
index b4f48e287..bafbeb516 100644
--- a/app/templates/courses/mock1/course-details.jade
+++ b/app/templates/courses/mock1/course-details.jade
@@ -5,7 +5,6 @@ block content
   //- DO NOT localize / i18n
 
   div TODO: fix ugly tabs
-  div TODO: not enrolled yet
   div
     span *UNDER CONSTRUCTION, send feedback to
     a.spl(href='mailto:team@codecombat.com') team@codecombat.com
@@ -55,102 +54,28 @@ block content
 
   div(role='tabpanel')
     ul.nav.nav-tabs(role='tablist')
-      if !studentMode
+      if studentMode
+        li.active(role='presentation')
+          a(href='#levels', aria-controls='levels', role='tab', data-toggle='tab') Levels
+        li(role='presentation')
+          a(href='#progress', aria-controls='progress', role='tab', data-toggle='tab') Class
+      else
         li.active(role='presentation')
           a(href='#progress', aria-controls='progress', role='tab', data-toggle='tab') Class
         li(role='presentation')
           a(href='#invite', aria-controls='invite', role='tab', data-toggle='tab') Add Students
-      li(role='presentation')
-        a(href='#levels', aria-controls='levels', role='tab', data-toggle='tab') Levels
+        li(role='presentation')
+          a(href='#levels', aria-controls='levels', role='tab', data-toggle='tab') Levels
 
   .tab-content
-    if !studentMode
+    if studentMode
+      .tab-pane.active#levels(role='tabpanel')
+        +levels-tab
+      .tab-pane#progress(role='tabpanel')
+        +progress-tab
+    else
       .tab-pane.active#progress(role='tabpanel')
-        if instance.students
-          h3 Summary
-          - var averagePlaytime = Math.round(Math.random() * 30) + 30
-          p
-            strong(style='font-size:12pt;') Average Play Time
-          p #{averagePlaytime} minutes
-          p
-            strong(style='font-size:12pt;') Concepts Covered
-          table.table.table-condensed
-            each concept in courseConcepts
-              - var conceptCompletion = Math.round(parseFloat(conceptsCompleted[concept]) / instance.students.length * 100)
-              if isNaN(conceptCompletion)
-                - conceptCompletion = 0
-              tr
-                td.concept-completion-container
-                    span.concept-completed-foreground(data-i18n="concepts." + concept)
-                    span.spl - #{conceptCompletion}%
-                    span.concept-completion-background(style="width:#{conceptCompletion}%;")
-          h3 Students
-          table.table.table-condensed
-            thead
-              tr
-                th
-                  span.member-header.spr Name
-                  if memberSort === 'nameAsc'
-                    span.member-header.glyphicon.glyphicon-chevron-up
-                  else if memberSort === 'nameDesc'
-                    span.member-header.glyphicon.glyphicon-chevron-down
-                th
-                  span.progress-header.spr Progress
-                  if memberSort === 'progressAsc'
-                    span.progress-header.glyphicon.glyphicon-chevron-up
-                  else if memberSort === 'progressDesc'
-                    span.progress-header.glyphicon.glyphicon-chevron-down
-                  else
-                    span(style='padding-left:16px;')
-                  span.progress-key.progress-key-complete complete
-                  span.progress-key.progress-key-started started
-                  span.progress-key not started
-                  if maxLastStartedIndex > 30
-                    input.expand-progress-checkbox(type='checkbox')
-                    span.spl.expand-progress-label(data-i18n="clans.exp_levels") Expand levels
-            tbody
-              each student in instance.students
-                tr
-                  td
-                    a= student
-                  td.progress-cell
-                    .level-progression-concepts Concepts
-                    each concept in courseConcepts
-                      if userConceptsMap[student] && userConceptsMap[student][concept] === 'complete'
-                        span.spr.progress-concept-cell.progress-concept-cell-complete(data-i18n="concepts." + concept)
-                      else if userConceptsMap[student] && userConceptsMap[student][concept] === 'started'
-                        span.spr.progress-concept-cell.progress-concept-cell-started(data-i18n="concepts." + concept)
-                      else
-                        span.spr.progress-concept-cell.progress-concept-cell-not-started(data-i18n="concepts." + concept)
-
-                    .level-progression-levels Levels
-                    - var i = 0
-                    each level in course.levels
-                      if userLevelStateMap[student][level] === 'complete'
-                        span.progress-level-cell.progress-level-cell-complete #{i + 1}
-                          if showExpandedProgress || i === 0 || i === course.levels.length - 1
-                            span.spl #{level}
-                          .level-popup-container
-                            h3 #{i + 1}. #{level}
-                            p
-                              div
-                                - var playTime = Math.round(Math.random() * 600)
-                                span Time to solve
-                                span : #{playTime} seconds
-                              div
-                                - var completionDate = new Date()
-                                - completionDate.setUTCDate(completionDate.getUTCDate() - Math.round(Math.random() * 60))
-                                span Completed on
-                                span : #{moment(completionDate).format('MMMM Do YYYY, h:mm:ss a')}
-                            strong(data-i18n="clans.view_solution") Click to view solution.
-                      else if userLevelStateMap[student][level] === 'started'
-                        span.progress-level-cell.progress-level-cell-started #{i + 1} #{level}
-                      else
-                        span.progress-level-cell.level-progression-level-not-started #{i + 1}
-                          if showExpandedProgress || i === 0
-                            span.spl #{level}
-                      - i++
-
+        +progress-tab
       .tab-pane#invite(role='tabpanel')
         p Invite students to join this class.
         if course.title !== 'Introduction to Computer Science'
@@ -159,12 +84,94 @@ block content
         textarea.textarea-emails(rows=3, placeholder="Enter student emails to invite, one per line")
         div
           button.btn.btn-success.btn-invite Send Invites
-
       .tab-pane#levels(role='tabpanel')
         +levels-tab
-    else
-      .tab-pane.active#levels(role='tabpanel')
-        +levels-tab
+
+mixin progress-tab
+  if instance.students
+    h3 Summary
+    - var averagePlaytime = Math.round(Math.random() * 30) + 30
+    p
+      strong(style='font-size:12pt;') Average Play Time
+    p #{averagePlaytime} minutes
+    p
+      strong(style='font-size:12pt;') Concepts Covered
+    table.table.table-condensed
+      each concept in courseConcepts
+        - var conceptCompletion = Math.round(parseFloat(conceptsCompleted[concept]) / instance.students.length * 100)
+        if isNaN(conceptCompletion)
+          - conceptCompletion = 0
+        tr
+          td.concept-completion-container
+              span.concept-completed-foreground(data-i18n="concepts." + concept)
+              span.spl - #{conceptCompletion}%
+              span.concept-completion-background(style="width:#{conceptCompletion}%;")
+    h3 Students
+    table.table.table-condensed
+      thead
+        tr
+          th
+            span.member-header.spr Name
+            if memberSort === 'nameAsc'
+              span.member-header.glyphicon.glyphicon-chevron-up
+            else if memberSort === 'nameDesc'
+              span.member-header.glyphicon.glyphicon-chevron-down
+          th
+            span.progress-header.spr Progress
+            if memberSort === 'progressAsc'
+              span.progress-header.glyphicon.glyphicon-chevron-up
+            else if memberSort === 'progressDesc'
+              span.progress-header.glyphicon.glyphicon-chevron-down
+            else
+              span(style='padding-left:16px;')
+            span.progress-key.progress-key-complete complete
+            span.progress-key.progress-key-started started
+            span.progress-key not started
+            if maxLastStartedIndex > 30
+              input.expand-progress-checkbox(type='checkbox')
+              span.spl.expand-progress-label(data-i18n="clans.exp_levels") Expand levels
+      tbody
+        each student in instance.students
+          tr
+            td
+              a= student
+            td.progress-cell
+              .level-progression-concepts Concepts
+              each concept in courseConcepts
+                if userConceptsMap[student] && userConceptsMap[student][concept] === 'complete'
+                  span.spr.progress-concept-cell.progress-concept-cell-complete(data-i18n="concepts." + concept)
+                else if userConceptsMap[student] && userConceptsMap[student][concept] === 'started'
+                  span.spr.progress-concept-cell.progress-concept-cell-started(data-i18n="concepts." + concept)
+                else
+                  span.spr.progress-concept-cell.progress-concept-cell-not-started(data-i18n="concepts." + concept)
+
+              .level-progression-levels Levels
+              - var i = 0
+              each level in course.levels
+                if userLevelStateMap[student][level] === 'complete'
+                  span.progress-level-cell.progress-level-cell-complete #{i + 1}
+                    if showExpandedProgress || i === 0 || i === course.levels.length - 1
+                      span.spl #{level}
+                    .level-popup-container
+                      h3 #{i + 1}. #{level}
+                      p
+                        div
+                          - var playTime = Math.round(Math.random() * 600)
+                          span Time to solve
+                          span : #{playTime} seconds
+                        div
+                          - var completionDate = new Date()
+                          - completionDate.setUTCDate(completionDate.getUTCDate() - Math.round(Math.random() * 60))
+                          span Completed on
+                          span : #{moment(completionDate).format('MMMM Do YYYY, h:mm:ss a')}
+                      strong(data-i18n="clans.view_solution") Click to view solution.
+                else if userLevelStateMap[student][level] === 'started'
+                  span.progress-level-cell.progress-level-cell-started #{i + 1} #{level}
+                else
+                  span.progress-level-cell.level-progression-level-not-started #{i + 1}
+                    if showExpandedProgress || i === 0
+                      span.spl #{level}
+                - i++
 
 mixin levels-tab
   table.table.table-striped.table-condensed