protected function loadTree()
    {
        $this->setFallbackURL();

        $this->tree = $this->readCachedPSL($this->url);
        if (false !== $this->tree) {
            return;
        }

        $this->tree = array();
        $list = $this->readPSL();

        if (false===$list) {
            throw new \RuntimeException('Cannot read ' . $this->url);
        }

        $this->parsePSL($list);
        $this->cachePSL($this->url);
    }