         @jaxing = false
         @processCoachMath?()
 
-      # Update the hash fragment after the content has loaded
-      # to force the browser window to find the intended content
+      # Clear and replace the hash fragment after the content has loaded
+      # to force the browser window to find the intended content (as a side effect)
       jumpToHash = () =>
         if currentPage.get('loaded') and not @fragmentReloaded and window.location.hash
           @fragmentReloaded = true


    goToPage: (pageNumber, href) ->
      @model.setPage(pageNumber)
      router.navigate href, {trigger: false}, => @parent.parent.parent.trackAnalytics()

    getCoach: ->
      moduleUUID = @model.getUuid()?.split('?')[0]

      currentRoute = Backbone.history.getFragment()
      canonicalPath = linksHelper.getPath('contents', {model: @model, page: pageId}, [])
      if (canonicalPath isnt "/#{currentRoute}")
        # replace previous URL with the canonical path
        history.replaceState({}, @model.get('title'), canonicalPath)

    updateTeacher: ($temp = @$el) ->
      $els = $temp.find('.os-teacher')
