   # Unsubscribes from the model and the element.
   unbind: =>
     @binder.unbind?.call @, @el
-    @view.adapters['.'].unsubscribe @model, @keypath, @sync
+    @view.adapters[@key.interface].unsubscribe @model, @key.path, @sync
 
     if @options.dependencies?.length
       for dependency in @options.dependencies


    @binder or= @view.binders['*']
    @binder = {routine: @binder} if @binder instanceof Function
    @formatters = @options.formatters || []
    @model = if @key then @view.models[@key] else @view.models

  # Applies all the current formatters to the supplied value and returns the
  # formatted value.

  # Updates the binding's model from what is currently set on the view. Unbinds
  # the old model first and then re-binds with the new model.
  update: (models = {}) =>
    if models[@rootKey.path]
      @view.adapters[@key.interface].unsubscribe @model, @key.path, @sync
      @setModel()
      @view.adapters[@key.interface].subscribe @model, @key.path, @sync
      @sync()

    @binder.update?.call @, models
