 
     Luca.View::initialize.apply @, arguments
 
+  remove: ()->
+    Luca.View::remove.apply(@, arguments)
+    @eachComponent (component)->
+      component.remove?()
+      
   # Rendering Pipeline
   #
   # A container has nested components.  these components

          # try in the window context.  this is almost always certainly a bug
          # so look into wtf is going on and which components are problematic
          containerElement = @$( component.container ).eq(0) if containerElement.length is 0

        containerElement.append( component.el )



  findComponentByGetter: (getter, deep=false)->
    _( @allChildren() ).detect (component)->
      component?.getter is getter

  findComponentByRole: (role,deep=false)->
    _( @allChildren() ).detect (component)->
      component?.role is role or component?.type is role or component?.ctype is role

  findComponentByType: (desired,deep=false)->
    _( @allChildren() ).detect (component)->
