protected function initializeContainer()
    {
        // First check if cache should be bypassed
        if ($this->bypassCache) {
            $this->getContainer();

            return;
        }

        // Prepare cache directory
        $this->prepareDirectory($this->cacheDir, 'cache');

        // Instantiate cache
        $cache = new ConfigCache(
            $this->cacheDir . '/container/' . $this->containerClassName . '.php',
            $this->debug
        );

        // Check if cache needs to be regenerated, depends on debug being set to true
        if (!$cache->isFresh()) {
            $this->getContainer();
            $this->dumpContainer($cache);
        }

        // Include container cache
        require_once $cache;

        // Instantiate container
        $this->innerContainer = new $this->containerClassName();
    }