protected function getCache($key, $default)
    {
        if (!isset($this->cache[$key])) {
            $this->cache[$key] = is_callable($default) ? $default() : $default;
        }
        return $this->cache[$key];
    }