public function initialize()
    {
        $class = $this->class;
        $driver = null;

        if (empty($class)) {
            throw new Exception\InvalidArgumentException(
                "The configuration driver is invalid."
            );
        }

        // Load user defined driver
        if (class_exists($class)) {
            $driver = new $class($this->_options);
            if (is_a($driver, '\Slick\Configuration\Driver\DriverInterface')) {
                return $driver;
            } else {
                throw new Exception\InvalidArgumentException(
                    "The configuration type '{$class}' doesn't inherited from "
                    ."Slick\Configuration\Driver\DriverInterface."
                );
            }
        }

        switch ($class) {
            case 'ini':
                $driver = new Driver\Ini($this->_options);
                break;

            case 'php':
                $driver = new Driver\Php($this->_options);
                break;
            
            default:
                throw new Exception\InvalidArgumentException(
                    "The configuration driver is unknown."
                );
        }

        return $driver;
    }