     func writeValue(_ value: Data, forCharacteristic handle: UInt16) async {
         await server.writeValue(value, forCharacteristic: handle)
     }
-        
-    private func maximumUpdateValueLength() async -> Int {
-        // ATT_MTU-3
-        return await Int(server.maximumTransmissionUnit.rawValue) - 3
+    
+    var maximumUpdateValueLength: Int {
+        get async {
+            // ATT_MTU-3
+            return await Int(server.maximumTransmissionUnit.rawValue) - 3
+        }
     }
     
     // IO error

    private func didWrite(uuid: BluetoothUUID, handle: UInt16, value: Data) async {
        let confirmation = GATTWriteConfirmation(
            central: central,
            maximumUpdateValueLength: await maximumUpdateValueLength(),
            uuid: uuid,
            handle: handle,
            value: value

    private func willRead(uuid: BluetoothUUID, handle: UInt16, value: Data, offset: Int) async -> ATTError? {
        let request = GATTReadRequest(
            central: central,
            maximumUpdateValueLength: await maximumUpdateValueLength,
            uuid: uuid,
            handle: handle,
            value: value,
