def add_children(*nodes)
      new_children = nodes.flatten
      new_children.each do |node|
        node.set_parent self
        node.add_observer(self)
      end
      changed
      notify_observers :new_children, new_children
    end
def add_children(*nodes)
      new_children = nodes.flatten
      new_children.each do |node|
        node.set_parent self
        node.add_observer(self)
      end
      changed
      notify_observers :new_children, new_children
    end
Takes an arbitrary number of child nodes, adds them to the list of children,
 and make this node their parent.