public static function oneRecordCached($cacheKey, $query, $parameters = [], $errorHandler = null)
    {

        // check for cached record
        if (array_key_exists($cacheKey, static::$_record_cache)) {
            // return cache hit
            return static::$_record_cache[$cacheKey];
        }

        // preprocess and execute query
        $result = static::query($query, $parameters, $errorHandler);

        // get record
        $record = $result->fetch(PDO::FETCH_ASSOC);

        // save record to cache
        if ($cacheKey) {
            static::$_record_cache[$cacheKey] = $record;
        }

        // return record
        return $record;
    }