public function flushCache($cacheKey = null)
    {

        // flush the complete cache, if NO cache key has been passed
        if ($cacheKey === null) {
            $this->references = $this->cache = array();
            return;
        }

        // only flush the value with the passed cache key
        if (isset($this->cache[$resolvedCacheKey = $this->resolveReference($cacheKey)])) {
            unset($this->cache[$resolvedCacheKey]);
        }
    }