def root node=nil, asks_allow_children=false, &block
      if @treemodel
        return @treemodel.root unless node
        raise ArgumentError, "Root already set"
      end

      raise ArgumentError, "root: node cannot be nil" unless node
      @treemodel = Canis::DefaultTreeModel.new(node, asks_allow_children, &block)
    end
def root node=nil, asks_allow_children=false, &block
      if @treemodel
        return @treemodel.root unless node
        raise ArgumentError, "Root already set"
      end

      raise ArgumentError, "root: node cannot be nil" unless node
      @treemodel = Canis::DefaultTreeModel.new(node, asks_allow_children, &block)
    end
Sets the given node as root and returns treemodel.
 Returns root if no argument given.
 Now we return root if already set
 Made node nillable so we can return root.

 @raise ArgumentError if setting a root after its set
   or passing nil if its not been set.