     else
       args
 
+  # Creates a new Project object based on the given name, and sets this
+  # node as the parent node.
+  #
+  # @param [String] name The project name
   project: (name) -> new Project(@api, @, name)
+
+  # Creates a new Folder object based on the given path, and sets this
+  # node as the parent node.
+  #
+  # @param [String] path The path of the folder node relative to this node.
   folder: (path...) ->  new Folder(@api, @, path)
+
+  # Creates a new File object based on the given path, and sets this
+  # node as the parent node.
+  #
+  # @param [String] path The path of the file node relative to this node.
   file: (path...) -> new File(@api, @, path)
+
+  # Creates a new Revision object based on the given path, and sets this
+  # node as the parent node.
+  #
+  # @param [String] path The path of the revision node relative to this node.
   revision: (path...) -> new Revision(@api, @, path)
 
 Project = require './nodes/project'


    return @

  buildRelations: (cb) ->
    api = @api


    @nodeName = @nodePath.match(/([^\/]+)$/)[1]
    @data = {}

  # Assigns the data for this node and sets up getters/setters with
  # the proper options so that they are enumerable.
  #
  # @param [Object] data The properties and values to assign to this node.
  withData: (data) ->
    for own key, val of data then do (key, val) =>
      @data[key] = val
