def add *items
      items.each do |c|  
        raise ArgumentError, "Nil component passed to add" unless c
        if c.is_a? Widget
          if c.form && c.form != @form
            $log.debug " removing widget VIMSPLIT #{c.class} wr:  #{c.row} row:#{@row} ht:#{@height} "
            c.form.remove_widget c
            c.form = nil
            # or should i just stack them myself and screw what you've asked for
          end
          # take it out of form's control. We will control it.
          if c.form
            c.form.remove_widget c
          end
          # shoot, what if at this point the container does not have a form
          attach_form c if @form
        end
        # most likely if you have created both container and widgets
        # inside app, it would have given row after container

        @components << c
        if c.focusable
          @focusables << c 
          @current_component ||= c # only the first else cursor falls on last on enter
        end

      end # items each
      self
    end
def add *items
      items.each do |c|  
        raise ArgumentError, "Nil component passed to add" unless c
        if c.is_a? Widget
          if c.form && c.form != @form
            $log.debug " removing widget VIMSPLIT #{c.class} wr:  #{c.row} row:#{@row} ht:#{@height} "
            c.form.remove_widget c
            c.form = nil
            # or should i just stack them myself and screw what you've asked for
          end
          # take it out of form's control. We will control it.
          if c.form
            c.form.remove_widget c
          end
          # shoot, what if at this point the container does not have a form
          attach_form c if @form
        end
        # most likely if you have created both container and widgets
        # inside app, it would have given row after container

        @components << c
        if c.focusable
          @focusables << c 
          @current_component ||= c # only the first else cursor falls on last on enter
        end

      end # items each
      self
    end
NOTE: since we are handling the traversal, we delink the object from any
 form's widgets array  that might have been added. Whenever a form is available,
 we set it (without adding widget to it) so it can print using the form's window.

 @param [Widget] to add