 
 ReactiveComponent = (obj) ->
 
+
   _.extend obj,
 
     _shouldComponentUpdate : (next_props, next_state) -> 

      @_dirty or 
      JSON.stringify([next_state, next_props]) != JSON.stringify([@state, @props])

    _getInitialState : ->
      @_dirty = false
      @_subscribed_data = {}

      # initialize data stored at this component's ActiveREST key
      @_activeREST_key = 
        "#{obj.displayName.toLowerCase()}#{ if @props.key then '/' + @props.key else ''}"

      data = ActiveREST.fetch @_activeREST_key
      data = {} if !data


        when 'shouldComponentUpdate'
          @_shouldComponentUpdate arguments...
          
      if old_method then (old_method.bind(this))(arguments...) else {}

  wrap name for name in to_wrap
