protected static function createViaHttpClient($url, array $options = [])
    {
        try {
            $clientOptions = isset($options['client']) ? (array)$options['client'] : [];
            $client = new Client(array_merge(['timeout' => 10.0], $clientOptions));
            $requestOptions = isset($options['request']) ? (array)$options['request'] : [];
            $response = $client->get($url, $requestOptions);
            return self::createFromString(strval($response->getBody()));

            // If a runtime exception occurred
        } catch (RequestException $e) {
            throw new RuntimeException($e->getMessage(), $e->getCode());
        }
    }