     ///
     public private(set) var httpVersionMinor: UInt16?
 
-    ///
-    /// List of String to String tuples
-    ///
-    public private(set) var headers = [String:String]()
+    //
+    // Storage for headers
+    //
+    private let headerStorage = HeaderStorage()
+
+    ///
+    /// Set of headers who's value is a String
+    ///
+    public private(set) var headers: SimpleHeaders
+
+    ///
+    /// Set of headers who's value is an Array
+    ///
+    public private(set) var headersAsArrays: ArrayHeaders
 
     ///
     /// Raw headers before processing

    public private(set) var rawHeaders = [String]()

    ///
    /// Method
    ///
    public private(set) var method: String = "" // TODO: enum?


    ///
    init (isRequest: Bool) {
        httpParser = HttpParser(isRequest: isRequest)

        headers = SimpleHeaders(storage: headerStorage)
        headersAsArrays = ArrayHeaders(storage: headerStorage)

        httpParser!.delegate = self
    }

