protected function makeServer($name)
    {
        $config = $this->getConfig($name);

        if (empty($config)) {
            throw new \InvalidArgumentException("Unable to instantiate Glide server because you provide en empty configuration, \"{$name}\" is probably a wrong server name.");
        }

        if (array_key_exists($config['source'], $this->app['config']['filesystems']['disks'])) {
            $config['source'] =  $this->app['filesystem']->disk($config['source'])->getDriver();
        }

        if (array_key_exists($config['cache'], $this->app['config']['filesystems']['disks'])) {
            $config['cache'] =  $this->app['filesystem']->disk($config['cache'])->getDriver();
        }

        if (isset($config['watermarks']) && array_key_exists($config['watermarks'], $this->app['config']['filesystems']['disks'])) {
            $config['watermarks'] =  $this->app['filesystem']->disk($config['watermarks'])->getDriver();
        }

        return new GlideServer($this->app, $config);
    }