     /// Performs the actual IO for recieving data.
     public func read() throws -> Bool {
         
-        guard let connection = self.connection
-            else { throw POSIXError(code: .ECONNABORTED) }
-        
         return try connection.read()
     }
     
     /// Performs the actual IO for sending data.
     public func write() throws -> Bool {
-        
-        guard let connection = self.connection
-            else { throw POSIXError(code: .ECONNABORTED) }
         
         return try connection.write()
     }

    internal private(set) var indications = [UInt16: Notification]()
    
    // MARK: - Initialization
    
    deinit {
        
        self.connection?.unregisterAll()
        self.connection = nil
    }
    
    public init(socket: L2CAPSocketProtocol,
                maximumTransmissionUnit: ATT.MaximumTransmissionUnit = .default,

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