 # There is a cyclic dependency between this and various views (`->` means "depends on"):
 # controller -> layout -> WorkspaceView -> WorkspaceItemView -> controller (because clicking an item will begin editing)
 define [
+  'underscore'
   'marionette'
   'cs!collections/content'
+  'cs!models/content/toc-node'
   'cs!views/layouts/workspace'
-], (Marionette, allContent, WorkspaceLayout) ->
+], (_, Marionette, allContent, TocNode, WorkspaceLayout) ->
 
 
   # Only reason to extend Backbone.Router is to get the @navigate method

        allContent.load()
        .fail(() => alert 'Problem loading workspace. Please refresh and try again')
        .done () =>
          @_showWorkspacePane(SidebarView)
          @layout.sidebar.close()
          @layout.content.show(new SearchResultsView {collection:allContent})

          # Update the URL

      # To prevent cyclic dependencies, load the views once the app has loaded.
      require [
        'cs!views/layouts/workspace/menu'
        'cs!views/layouts/workspace/bookshelf'
        'cs!views/layouts/workspace/table-of-contents'
        'cs!views/workspace/content/search-results'
        ], (menuLayout, BookshelfView, TocView, SearchResultsView) =>

        @_ensureLayout(menuLayout)

