     public let responder: S4.Responder
     public let serializer: S4.ResponseSerializer
     public let port: Int
+    public let bufferSize: Int = 2048
 
-    public init(at host: String = "0.0.0.0", on port: Int = 8080, certificate: String, privateKey: String, certificateChain: String? = nil, reusingPort reusePort: Bool = false, parser: S4.RequestParser = RequestParser(), middleware: Middleware..., responder: S4.Responder, serializer: S4.ResponseSerializer = ResponseSerializer()) throws {
+    public init(host: String = "0.0.0.0", port: Int = 8080, certificate: String, privateKey: String, certificateChain: String? = nil, reusePort: Bool = false, parser: S4.RequestParser = RequestParser(), middleware: Middleware..., responder: S4.Responder, serializer: S4.ResponseSerializer = ResponseSerializer()) throws {
         self.server = try TCPSSLServer(
-            at: host,
-            on: port,
-            reusingPort: reusePort,
+            host: host,
+            port: port,
+            reusePort: reusePort,
             certificate: certificate,
             privateKey: privateKey,
             certificateChain: certificateChain

        }
    }

    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)
                stream.close()
            }

            if !request.isKeepAlive {
                stream.close()
                throw StreamError.closedStream(data: [])
            }
        }
    }

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

        self.port = port
    }

    public init(host: String = "0.0.0.0", port: Int = 8080, certificate: String, privateKey: String, certificateChain: String? = nil, reusingPort reusePort: Bool = false, parser: S4.RequestParser = RequestParser(), middleware: Middleware..., serializer: S4.ResponseSerializer = ResponseSerializer(), _ respond: Respond) throws {
        self.server = try TCPSSLServer(
            host: host,
            port: port,
            reusePort: reusePort,
            certificate: certificate,
            privateKey: privateKey,
            certificateChain: certificateChain
