       Batman.removeData(oldNode, 'view', true) if oldNode
       return if node == @node
 
+      @destroyBindings()
+      @destroySubviews()
+
       @node = node
-      @isBound = false
       return if not node
 
       Batman._data(node, 'view', this)

  destroyBindings: ->
    binding.die() for binding in @bindings
    bindings = []

  destroySubviews: ->
    subview.die() for subview in @subviews.toArray()

      @html = @constructor.store.get(source)

    set: (key, html) ->
      @destroyBindings()
      @destroySubviews()

      @html = html

      @loadView(@node) if @node and html?
      @initializeBindings() if @bindImmediately
