         modifiedBuffers.push item.buffer if item.buffer.isModified()
     modifiedBuffers
 
-  # Retrieves all of the paths to open files.
+  # Private: Retrieves all of the paths to open files.
   #
   # Returns an {Array} of {String}s.
   getOpenBufferPaths: ->
     _.uniq(_.flatten(@getEditors().map (editor) -> editor.getOpenBufferPaths()))
 
-  # Retrieves the pane that's currently open.
-  #
-  # Returns an {Pane}.
+  # Public: Returns the currently focused {Pane}.
   getActivePane: ->
     @panes.getActivePane()
 
+  # Public: Returns the currently focused {PaneItem}.
   getActivePaneItem: ->
     @panes.getActivePaneItem()
 
+  # Public: Returns the currently focused {PaneItemView}.
   getActiveView: ->
     @panes.getActiveView()
 
+  # Public: Focuses the previous pane by id.
   focusPreviousPane: -> @panes.focusPreviousPane()
+
+  # Public: Focuses the next pane by id.
   focusNextPane: -> @panes.focusNextPane()
+
+  # Public:
+  #
+  # FIXME: Difference between active and focused pane?
   getFocusedPane: -> @panes.getFocusedPane()
 
-  # Saves all of the open buffers.
+  # Public: Saves all of the open {PaneItem}s
   saveAll: ->
     @panes.saveAll()
 
-  # Fires a callback on each open {Pane}.
-  #
-  # callback - A {Function} to call
+  # Public: Fires a callback on each open {Pane}.
   eachPane: (callback) ->
     @panes.eachPane(callback)
 
-  # Retrieves all of the open {Pane}s.
-  #
-  # Returns an {Array} of {Pane}.
+  # Public: Returns an Array of all open {Pane}s.
   getPanes: ->
     @panes.getPanes()
 
-  # Given a {Pane}, this fetches its ID.
-  #
-  # pane - An open {Pane}
-  #
-  # Returns a {Number}.
+  # Public: Return the id of the given a {Pane}
   indexOfPane: (pane) ->
     @panes.indexOfPane(pane)
 
-  # Fires a callback on each open {Editor}.
-  #
-  # callback - A {Function} to call
+  # Private: Fires a callback on each open {Editor}.
   eachEditor: (callback) ->
     callback(editor) for editor in @getEditors()
     attachedCallback = (e, editor) -> callback(editor)
     @on('editor:attached', attachedCallback)
     off: => @off('editor:attached', attachedCallback)
 
-  # Fires a callback on each open {EditSession}.
-  #
-  # callback - A {Function} to call
+  # Public: Fires a callback on each open {EditSession}.
   eachEditSession: (callback) ->
     project.eachEditSession(callback)
 
-  # Fires a callback on each open {TextBuffer}.
-  #
-  # callback - A {Function} to call
+  # Private: Fires a callback on each open {TextBuffer}.
   eachBuffer: (callback) ->
     project.eachBuffer(callback)
 
-  ### Internal ###
-
-  # Destroys everything.
+  # Private: Destroys everything.
   remove: ->
     editor.remove() for editor in @getEditors()
     project.destroy()

    themes: ['atom-dark-ui', 'atom-dark-syntax']
    projectHome: path.join(atom.getHomeDirPath(), 'github')

  ### Internal ###
  @acceptsDocuments: true

  @content: (state) ->
    @div id: 'root-view', =>
      @div id: 'horizontal', outlet: 'horizontal', =>
        @div id: 'vertical', outlet: 'vertical', =>
          @div outlet: 'panes'

  @deserialize: (state) ->
    new RootView(state)

  initialize: (state={}) ->
    if state instanceof telepath.Document
      @state = state


    _.nextTick => atom.setFullScreen(@state.get('fullScreen'))

  # Private:
  serialize: ->
    state = @state.clone()
    state.set('panes', @panes.serialize())
    state.set('fullScreen', atom.isFullScreen())
    state

  # Private:
  getState: -> @state

  # Private:
  handleFocus: (e) ->
    if @getActivePane()
      @getActivePane().focus()
