     
     public var writePending: (() -> ())? {
         
-        get { return connection?.writePending }
-        
-        set { connection?.writePending = newValue }
+        get { return connection.writePending }
+        
+        set { connection.writePending = newValue }
     }
     
     public private(set) var maximumTransmissionUnit: ATTMaximumTransmissionUnit = .default {
         
         // update connection with new value
-        didSet { connection?.maximumTransmissionUnit = maximumTransmissionUnit }
+        didSet { connection.maximumTransmissionUnit = maximumTransmissionUnit }
     }
     
     public let preferredMaximumTransmissionUnit: ATTMaximumTransmissionUnit
     
     // Don't modify
     @_versioned
-    internal private(set) var connection: ATTConnection?
+    internal private(set) var connection: ATTConnection
     
     /// Whether the client is currently writing a long value.
     internal private(set) var inLongWrite: Bool = false

        case let .error(error):
            
            log?("Could not exchange MTU: \(error)")
            self.connection = nil
            
        case let .value(pdu):
            

    
    @inline(__always)
    private func send <Request: ATTProtocolDataUnit> (_ request: Request) {
        
        log?("Request: \(request)")
        
