     
     private var url: URL?
     
-    private var scheme = HTTP
+    private var scheme = Scheme.http.rawValue
     
-    fileprivate var httpMethod = HttpMethod.GET
+    fileprivate var httpMethod = HttpMethod.GET.rawValue
     
     private var httpHeaders: [String: String] = [:]
+    
+    // MARK: - Initialization
+    
+    public required init() {}
     
     // MARK: - API
     
     // MARK: - URL
+    
+    /// Sets the request URL.
     ///
+    /// - parameter url: The URL.
+    ///
+    /// - returns: The builder instance.
     public func url(_ url: URL) -> RequestBuilder {
         self.url = url
         return self

        
        //
        var request = URLRequest(url: (components?.url)!)
        request.httpMethod = httpMethod.rawValue
        request.allHTTPHeaderFields = httpHeaders
        
        return request

    ///
    /// - returns: The builder instance.
    public func http() -> RequestBuilder {
        return scheme(Scheme.http.rawValue)
    }

    /// Secure http.
    ///
    /// - returns: The builder instance.
    public func https() -> RequestBuilder {
        return scheme(Scheme.https.rawValue)
    }
    
    // MARK: - HTTP Headers
    
    /// Sets a value-HTTP header pair.
    ///
    /// - parameter value: The value to use for the header.
    /// - parameter field: The header for which the value is being changed.
    public func setValue(_ value: String?,
                         for headerField: String) -> RequestBuilder {
        self.httpHeaders[headerField] = value
