         newState = readDataObjects(this, newProps)
         return if _.isEmpty(newState)
         if @data
-            @data.rebind(newState, silent:true)
+            @data.rebind(newState)
         else
             @data = new DataWrapper(this, newState)
 

            @component.setState(state)
        true

    isStateUsingPubsub: (name) ->
        not (false == @component.pubsub or false == @component.pubsub?[name])

    destroy: (state, events, fn) ->
        for name, state of @states when @isStateUsingPubsub(name)
            Lanes.Models.PubSub.remove(state) if Lanes.u.isModel(state)
        this.stopListening()
        delete @component.data


    rebind: (objects, options = {}) ->
        customEvents = _.result(@component, 'bindDataEvents', {})
        @_rebindAttr(name, state, customEvents[name], options) for name, state of objects when state isnt false

    _rebindAttr: (name, state, ev, options) ->
        unless state
            Lanes.warn "#{name} is not set on #{@componentName()}"
            return

        prevState = @states[name]

        # onto next if the object is the same
        return if prevState == state

        @states[name] = state

        this.bindEvents(name, state, ev)

        if Lanes.u.isModel(state)
            @listenToNetworkEvents(state) if @component.listenNetworkEvents
            if @isStateUsingPubsub(name, state)
                if !prevState? or prevState.getId() != state.getId()
                    Lanes.Models.PubSub.remove(prevState) if prevState
                    unless false == state.pubsub
                        if state.isNew()
                            state.once "change:#{state.idAttribute}", -> Lanes.Models.PubSub.add(state)
                        else
                            Lanes.Models.PubSub.add(state)
                @listenTo(state, 'remote-update', @onPubSubChangeSet)
        this.setComponentState({}) unless options.silent

    listenToNetworkEvents: (state) ->
        @listenTo(state,     'error',     @onError)
