public function getProjectRoot(string $tail = ''): string
    {
        if(empty($this->root) || !is_dir($this->root)) {
            throw new \Exception("Invalid root dir or not set yet!");
        }

        return realpath($this->root) . $tail;
    }