         }
         caseInsensitiveMap[key.lowercased()] = nil
     }
-}+}
+
+/// Variables and methods to implement the Collection protocol
+extension HeadersContainer {
+    
+    public var startIndex:DictionaryIndex<String, [String]> { return headers.startIndex }
+    
+    public var endIndex:DictionaryIndex<String, [String]> { return headers.endIndex }
+    
+    public subscript(position: DictionaryIndex<String, [String]>) -> (key: String, value: [String]) {
+        get {
+            return headers[position]
+        }
+    }
+    
+    public func index(after i: DictionaryIndex<String, [String]>) -> DictionaryIndex<String, [String]> {
+        return headers.index(after: i)
+    }
+}

    public func append(_ key: String, value: String) {
        
        append(key, value: [value])
    }
    
    ///

    }
    
    ///
    /// Append values to the header
    ///
    /// - Parameter key: the key
