             return lastHandle
         }
         
-        func add(service: GATTAttribute.Service, _ coreService: CBMutableService) -> UInt16 {
+        mutating func add(service: GATTAttribute.Service, _ coreService: CBMutableService) -> UInt16 {
             
             let serviceHandle = newHandle()
             

        @objc
        public func peripheralManagerIsReady(toUpdateSubscribers peripheral: CBPeripheralManager) {
            log("Ready to send notifications")
            // send as many notifications as possible and re-queue if any fail
            while let pendingNotification = self.peripheral.notifyQueue.first {
                self.peripheral.notifyQueue.removeFirst()
                self.peripheral.queue.asyncAfter(deadline: .now() + 0.1, execute: { [weak self] in
                    self?.peripheral.notify(pendingNotification.data, for: pendingNotification.characteristic)
                })
            }
        }
    }
}

private extension DarwinPeripheral {
    
    final class Database {
        
        struct Service {
            

import CoreBluetooth
import CoreLocation

public final class DarwinPeripheral: PeripheralManager {
    
    // MARK: - Properties
    
