public static function create($request, array $config = array())
    {
        $request = self::getRequest($request, isset($config['resolver']) ? $config['resolver'] : null);

        //Use custom adapter
        if (!empty($config['adapter']['class'])) {
            if (($info = self::executeAdapter($config['adapter']['class'], $request, $config))) {
                return $info;
            }
        }

        //If is a file use File Adapter
        if (($info = self::executeAdapter('Embed\Adapters\File', $request, $config))) {
            return $info;
        }

        //Search the adapter using the domain
        $adapter = 'Embed\\Adapters\\'.str_replace(' ', '', ucwords(strtolower(str_replace('-', ' ', $request->getDomain()))));

        if (class_exists($adapter) && ($info = self::executeAdapter($adapter, $request, $config))) {
            return $info;
        }

        //Use the standard webpage adapter
        if (($info = self::executeAdapter('Embed\Adapters\Webpage', $request, $config))) {
            return $info;
        }

        if (!$request->isValid()) {
            throw new Exceptions\InvalidUrlException("The url '{$request->getUrl()}' returns the http code '{$request->getHttpCode()}'");
        }

        throw new Exceptions\InvalidUrlException("The url '{$request->getUrl()}' is not supported");
    }