     if @_batman.events
       event.clearHandlers() for _, event of @_batman.events
 
-    binding.die() for binding in @bindings
-    subview.die() for subview in @subviews.toArray()
+    @destroyBindings()
+    @destroySubviews()
 
     @node = null
 

    set: (key, html) ->
      @html = html
      @isBound = false
      binding.die() for binding in @bindings

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

    @ready?()

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

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

  baseForKeypath: (keypath) ->
    keypath.split('.')[0].split('|')[0].trim()
