public function addNode(Node $node)
    {
        if (array_key_exists($node->basename(), $this->children)) {
            throw new FileExistsException(sprintf('%s already exists', $node->basename()));
        }

        $this->children[$node->basename()] = $node;
        $node->setParent($this);
    }