protected function _nodesAtDepth(int $i): array
    {
        if (!$this->_root) {
            return array();
        }
        $depth = 0;
        $nodes = array($this->_root);
        while ($depth < $i) {
            $nodes = self::_gatherChildren(...$nodes);
            if (!count($nodes)) {
                break;
            }
            ++$depth;
        }
        return $nodes;
    }