public function all()
    {
        if ($this->_results !== null) {
            return $this->_results;
        }

        if ($this->_cache) {
            $results = $this->_cache->fetch($this);
        }
        if (!isset($results)) {
            $results = $this->_decorateResults($this->_execute());
            if ($this->_cache) {
                $this->_cache->store($this, $results);
            }
        }
        $this->_results = $results;

        return $this->_results;
    }