     bind: -> @[name] # make sure dependencies have been discovered and registered
     optimize: (queue) -> queue[queue.length - 1]
 
-  # adding properties busts the cache
-  def object, "_s_dependencyCache", value: {}, configurable: true
-
   def object, name,
     get: -> property.get(this)
     set: (value) -> property.set(this, value)

    @registerGlobal(object)
    if @options.get
      # add a listener which adds any dependencies that haven't been specified
      listener = (name) =>
        if @addDependency(name)
          # bust the cache
          def object, "_s_dependencyCache", value: {}, configurable: true

      object._s_property_access.bind(listener) unless "dependsOn" of @options
      value = @options.get.call(object)
      object._s_property_access.unbind(listener) unless "dependsOn" of @options

          deps.push(property.name)
          findDependencies(property.name)
    findDependencies(@name)
    deps

  triggerChanges: (object) ->
    changes = {}
