         else
           @_success options, collection, _(results).map (result) -> base.data.storage(result.key).get(result.id)
 
-
-    syncOptions.data.include = include.join(",") if include.length
+    syncOptions.data.include = @loadOptions.include.join(",") if @loadOptions.include.length
     syncOptions.data.only = _.difference(@loadOptions.only, alreadyLoadedIds).join(",") if @loadOptions.only?
     syncOptions.data.order = @loadOptions.order if @loadOptions.order?
     _.extend(syncOptions.data, _(@loadOptions.filters).omit('include', 'only', 'order', 'per_page', 'page', 'limit', 'offset', 'search')) if _(@loadOptions.filters).keys().length

    @loadOptions = $.extend {}, loadOptions
    @loadOptions.only = if @loadOptions.only then _.map((Brainstem.Utils.extractArray "only", @loadOptions), (id) -> String(id)) else null
    @loadOptions.filters ?= {}
  load: (loadOptions) ->
    @_parseLoadOptions(loadOptions)

    options = @loadOptions
    include = _(options.include).map((i) -> _.keys(i)[0]) # pull off the top layer of includes
    filterKeys = _.map(@loadOptions.filters, (v, k) -> "#{k}:#{v}").join(',')
    cacheKey = [@loadOptions.order || "updated_at:desc", filterKeys, options.page, options.perPage, options.limit, options.offset].join('|')



    unless options.cache == false
      if @loadOptions.only?
        alreadyLoadedIds = _.select @loadOptions.only, (id) => cachedCollection.get(id)?.associationsAreLoaded(@loadOptions.include)
        if alreadyLoadedIds.length == @loadOptions.only.length
          # We've already seen every id that is being asked for and have all the associated data.
          @_success options, collection, _.map @loadOptions.only, (id) => cachedCollection.get(id)
