protected function _improvedFetch(Zend_Db_Select $select, $method) {
        if ($method != 'fetchRow' && $method != 'fetchAll') {
            throw new Garp_Model_Exception('\'method\' must be "fetchRow" or "fetchAll".');
        }

        /**
         * Observers are allowed to set $results. This way, behaviors can swoop in
         * and use a different source when fetching records based on certain parameters.
         * For instance, the Cachable behavior might fetch data from the cache
         * instead of the database.
         */
        $results = -1;
        $this->notifyObservers('beforeFetch', array($this, $select, &$results));
        // Results was untouched, fetch a live result.
        if ($results === -1) {
            $results = parent::$method($select);
            $this->notifyObservers('afterFetch', array($this, &$results, $select));
        }
        return $results;
    }