public function createOne($method, array $tokens, array $options, DataSource $annotation = null) {
        return new Request([
            'method'              => HttpMethod::create($method, $annotation),
            'url'                 => Url::createFromTokens($tokens, $options['host'], $annotation),
            'curlOptions'         => CurlOptions::create(array_merge($options['driverOptions'], HttpHeader::create($options['driverOptions'], $tokens))),
            'query'               => HttpQuery::create($tokens, $options['driverOptions']),
            'payload'             => Payload::create($tokens, $options),
            'expectedStatusCodes' => StatusCode::create($method, $annotation)
        ]);
    }