     }
 
     private func printHeader() {
-        print("")
-        print("")
-        print("")
-        print("                             _____")
-        print("     ,.-``-._.-``-.,        /__  /  ___ _      ______")
-        print("    |`-._,.-`-.,_.-`|         / /  / _ \\ | /| / / __ \\")
-        print("    |   |ˆ-. .-`|   |        / /__/  __/ |/ |/ / /_/ /")
-        print("    `-.,|   |   |,.-`       /____/\\___/|__/|__/\\____/ (c)")
-        print("        `-.,|,.-`           -----------------------------")
-        print("")
-        print("================================================================================")
-        print("Started HTTP server, listening on port \(port).")
+        var header = "\n"
+        header += "\n"
+        header += "\n"
+        header += "                             _____\n"
+        header += "     ,.-``-._.-``-.,        /__  /  ___ _      ______\n"
+        header += "    |`-._,.-`-.,_.-`|         / /  / _ \\ | /| / / __ \\\n"
+        header += "    |   |ˆ-. .-`|   |        / /__/  __/ |/ |/ / /_/ /\n"
+        header += "    `-.,|   |   |,.-`       /____/\\___/|__/|__/\\____/ (c)\n"
+        header += "        `-.,|,.-`           -----------------------------\n"
+        header += "\n"
+        header += "================================================================================\n"
+        header += "Started HTTP server, listening on port \(port)."
+        print(header)
     }
 }
 
 extension Request {
-    var connection: HeaderValues {
+    var connection: Header {
         get {
-            return headers.headers["connection"] ?? HeaderValues([])
+            return headers.headers["connection"] ?? Header([])
         }
 
         set(connection) {

@_exported import HTTPSerializer

public struct Server {
    public let server: C7.StreamServer
    public let parser: S4.RequestParser
    public let middleware: [S4.Middleware]
    public let responder: S4.Responder
    public let serializer: S4.ResponseSerializer
    public let port: Int

    public init(address: String? = nil, port: Int = 8080, certificate: String, privateKey: String, certificateChain: String? = nil, parser: S4.RequestParser = RequestParser(), middleware: Middleware..., responder: S4.Responder, serializer: S4.ResponseSerializer = ResponseSerializer()) throws {
        self.server = try TCPSSLStreamServer(
            address: address,
            port: port,
            certificate: certificate,
            privateKey: privateKey,
            certificateChain: certificateChain

    public func start(failure: ErrorProtocol -> Void = Server.printError) throws {
        printHeader()
        while true {
            let stream = try server.accept(timingOut: .never)
            co {
                do {
                    try self.processStream(stream)
