     @formatters = @options.formatters || []
     @dependencies = []
     @setBinder()
-    @setModel()
+    @setObserver()
 
   setBinder: =>
     unless @binder = @view.binders[@type]

  constructor: (@view, @el, @type, @keypath, @options = {}) ->
    @formatters = @options.formatters || []
    @dependencies = []
    @setModel()

  # A standard routine binder used for text node bindings.
  binder:

    @binder or= @view.binders['*']
    @binder = {routine: @binder} if @binder instanceof Function

  setObserver: =>
    @observer = new KeypathObserver @view, @view.models, @keypath, (target) =>
      @unbind true if @key
      @model = target
      @bind true if @key
      @sync()

    @rootKey = @observer.root
    @key = @observer.key
    @model = @observer.target

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