 }
 
 extension Server {
-    public func start(failure: ErrorProtocol -> Void = Server.printError) throws {
+    public func start(_ failure: ErrorProtocol -> Void = Server.printError) throws {
         printHeader()
         while true {
             let stream = try server.accept(timingOut: .never)

        }
    }

    private func processStream(stream: Stream) throws {
        while !stream.closed {
            do {
                let data = try stream.receive(upTo: 2048)
                try processData(data, stream: stream)
            } catch StreamError.closedStream {
                break
            } catch {
                let response = Response(status: .internalServerError)
                try serializer.serialize(response, to: stream)

        }
    }

    private func processData(_ data: Data, stream: Stream) throws {
        if let request = try parser.parse(data) {
            let response = try middleware.chain(to: responder).respond(to: request)
            try serializer.serialize(response, to: stream)

            if let upgrade = response.upgrade {
                try upgrade(request, stream)
                try stream.close()
            }

            if !request.isKeepAlive {
                try stream.close()
            }
        }
    }

    public func startInBackground(_ failure: ErrorProtocol -> Void = Server.printError) {
        co {
            do {
                try self.start()
