     @_store = Backbone.RailsStore.getInstance()
     @relation = options.hasAndBelongsToMany
     @relationModelType = _.result(@relation, 'modelType')
-    @relatedModel = options.relatedModel
-    @lazyLoad = options.lazyLoad
-    @attribute = options.attribute
     options.filter = (model) =>
       opts = @relation
       return opts.subset[@relatedModel.cid].ids.indexOf(model.cid) != -1

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

  _onChildRemove: (model) ->

    @_storeServer.set('destroyModels', destroyData)
    @_storeServer.set('createRelations', createRelationData)
    @_storeServer.set('destroyRelations', destroyRelationData)
    xhr = @_storeServer.save null,
      silent: true
      storeSync: true
      success: (model) =>
        try
          # Treat errors
          errors =  model.get('errors')
          if errors
            modelType = @getModelType(errors.railsClass)
            model = @_storeLocally(modelType, errors.model)
            model.dirty = true if not model.id
            errors = errors.errors
            model.trigger 'commit:failed',
              model: model,
              errors: errors
          else
            triggerModels = []
            _.each @_changedModels, (changedModels, modelType) =>
              _.each changedModels, (changedModel) =>
                triggerModels.push(changedModel)
            _.each model.get('modelsIds'), (idsData, modelType) =>
              _.each idsData, (id, cid) =>
                storedModel = @findById(modelType, cid)
                if not storedModel
                  throw "Didn't find local model with cid! API BUG!"
                storedModel.set('id', id)
                @reportSync(storedModel)
            @_processServerModelsResponse(model)
            @_processServerRelationsResponse(model)
            @_changedModels = {}
            @_deletedModels.length = 0
            @_manyToManyCreate = {}
            @_manyToManyDestroy = {}

          @_storeServer.unset('commitModels')
          @_storeServer.unset('destroyModels')
          @_storeServer.unset('modelsIds')
          @_storeServer.unset('createRelations')
          @_storeServer.unset('destroyRelations')
          @_storeServer.unset('models')
          @_storeServer.unset('errors')
          _.each triggerModels, (changedModel) =>
            changedModel.trigger 'commit:done', changedModel
          @trigger('commit:done', @) if not errors
          @trigger('commit:failed', {model: model, errors: errors}) if errors
          # TODO: handle rollback
        catch e
          console.log(e)
          @trigger('commit:failed', {errors: "Communication error!"})
      error: =>
        # TODO: i18n
        @trigger('commit:failed', {errors: "Communication error!"})

    @trigger('commit:start')
    @_doProgress(xhr)

