       if firechange
         @trigger('change:' + prop_name, this, @get(prop_name))
         @trigger('change', this)
+
     prop_spec =
       'getter': getter,
       'dependencies': [],

      'callbacks':
        changedep: changedep
        propchange: propchange
    @_computed[prop_name] = prop_spec
    # bind propchange callback to change dep event
    @listenTo(this, "changedep:#{prop_name}",
              prop_spec['callbacks']['propchange'])
    return prop_spec

  remove_property: (prop_name) ->
    # removes the property,
    # unbinding all associated callbacks that implemented it
    prop_spec = @_computed[prop_name]
    dependencies = prop_spec.dependencies
    for dep in dependencies

    return this

  set: (key, value, options) ->
    # backbones set function supports 2 call signatures, either a dictionary of
    # key value pairs, and then options, or one key, one value, and then options.
    # replicating that logic here
