       opts = @hasMany[attr]
       opts.subset = {} unless opts.subset
       if not opts.subset[@cid]
+        if options.remoteRefresh
+          remoteRefresh = true
+        else
+          remoteRefresh = false
         other_col = @_store.getCollectionFromModel(_.result(opts, 'modelType'))
         opts.subset[@cid] = new Backbone.RailsHasManyRelationCollection
           parent: other_col
           relatedModel: @
-          lazyLoad: lazyLoad
+          remoteRefresh: remoteRefresh
+          lazyLoad: options.lazyLoad
           hasMany: opts
           attribute: attr
-      else if _.isFunction(lazyLoad)
-        lazyLoad(opts.subset[@cid].child)
+      else if options.remoteRefresh and options.remoteRefresh != 'first'
+        opts.subset[@cid].remoteRefresh
+          lazyLoad: options.lazyLoad
+      else if _.isFunction(options.lazyLoad)
+        options.lazyLoad(opts.subset[@cid].child)
       return opts.subset[@cid].child
 
     # Check if this is a hasAndBelongsToMany relation

      addOptions.add[sourceType][sourceModelId][targetType] =
        railsClass: @_store._getModelTypeObj(@relationModelType).prototype.railsClass
        ids: [targetModelId]
      @_store.reportManyToManyEvent addOptions
    super

  _onChildRemove: (model) ->

              ids: []
          request[modelType].ids.push(model.id)

    request = {refreshModels: request} if request
    request = {} unless request
    request.relations = relations if relations

    if _.size(request.refreshModels) == 0 and _.size(request.relations) == 0
      @trigger('refresh:start')
      @trigger('refresh:done')
      return
