     else
       @_loadData()
 
+  ###*
+   * Returns the name of the collection that this loader maps to and will update in the storageManager.
+   * @return {string} name of the collection
+  ###
   getCollectionName: ->
     throw "Implement in your subclass"
 
+  ###*
+   * Parse supplied loadOptions, add defaults, transform them into appropriate structures, and pull out important pieces.
+   * @param  {object} loadOptions
+   * @return {object} transformed loadOptions
+  ###
   _parseLoadOptions: (loadOptions = {}) ->
     @originalOptions = _.clone(loadOptions)
     @loadOptions = _.clone(loadOptions)

    syncOptions.data.search = @loadOptions.search if @loadOptions.search
    syncOptions

  _onSyncSuccess: (resp, _status, _xhr) =>
    data = @_updateStorageManagerFromResponse(resp)
    @_onLoadSuccess(data)

  _updateStorageManagerFromResponse: ->
    throw "Implement in your subclass"

  _calculateAdditionalIncludes: ->
    @additionalIncludes = []



    @externalObject

  ###*
   * Decides whether or not the `only` filter should be applied in the syncOptions.
   * Models will not use the `only` filter as they use show routes.
   * @return {boolean} whether or not to use the `only` filter
  ###
  _shouldUseOnly: ->
    @internalObject instanceof Backbone.Collection

  ###*
   * Generates the Brainstem specific options that are passed to Backbone.sync.
   * @return {object} options that are passed to Backbone.sync
  ###
  _buildSyncOptions: ->
    syncOptions =
      data: {}
