   trigger: =>
     @clearCache()
     if @hasChanged()
-      value = @get()
+      newValue = @get()
 
       changes = {}
       changes[name] = @object[name] for name in @dependents when name isnt @name
 
-      @event.trigger(@_oldValue, value)
+      @event.trigger(@_oldValue, newValue)
       for own name, value of changes
         prop = @object[name + "_property"]
         prop.clearCache()

  registerGlobal: ->
    return if @_isRegistered
    @_isRegistered = true
    for { name, type, subname } in @definition.globalDependencies
      switch type
        when "singular"
          if @object[name]

          prop.event.trigger(prop._oldValue, value)
          prop._oldValue = value

      changes[@name] = newValue
      @object.changed?.trigger?(changes)
      @_oldValue = newValue

  ["bind", "rebind", "unbind", "one", "resolve"].forEach (fn) =>
    this::[fn] = -> @event[fn](arguments...)
