     public let requestTimeout: Double
     public let bufferSize: Int
 
-    var connection: Connection?
+    var stream: Stream?
     var serializer: RequestSerializer?
     var parser: MessageParser?
 

        var request = request
        addHeaders(to: &request)

        let connection = try getConnection()
        let serializer = getSerializer(connection: connection)
        let parser = getParser(connection: connection)

        self.connection = connection
        self.serializer = serializer
        self.parser = parser


        }
    }

    private func getStream() throws -> Stream {
        if let stream = self.stream {
            return stream
        }

        let stream: Stream

        if secure {
            stream = try TCPTLSStream(
                host: host,
                port: port,
                verifyBundle: verifyBundle,
