         
         
     }
+    
+    private func log(string: String) {
+        
+        if self.logEnabled { print(string) }
+    }
 }
+
+// MARK: - Supporting Types
+
+public typealias ATTResponseCallback = ATTProtocolDataUnit -> ()
 
 // MARK: - Private Supporting Types
 

    public let socket: L2CAPSocket
    
    /// Actual number of bytes for PDU ATT exchange.
    public var maximumTransmissionUnit: Int = ATT.MTU.LowEnergy.Default {
        
        willSet {
            
            // enforce value range
            assert(newValue >= ATT.MTU.LowEnergy.Default)
            assert(newValue <= ATT.MTU.LowEnergy.Maximum)
            
            // recreate buffer
            
        }
    }
    
    // MARK: - Private Properties
    

    
    let PDU: [UInt8]
    
    let response: ATTResponseCallback
    
    init(identifier: UInt, opcode: ATT.Opcode, PDU: [UInt8], response: ATTResponseCallback) {
        
        self.identifier = identifier
        self.opcode = opcode
