         // required peripheral manager delegate method. do nothing.
     }
     
-    public final func peripheralManagerIsReady(toUpdateSubscribers peripheral: CBPeripheralManager) {
-        func sendNextInQueue() {
-            guard let charUpdate = characteristicValueUpdateQueue.first else { return }
     public func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) {
         print("did subscribe")
 
-            if peripheralManager.updateValue(charUpdate.value, for: charUpdate.characteristic, onSubscribedCentrals: nil) {
-                characteristicValueUpdateQueue.removeFirst()
-                sendNextInQueue()
-            }
-        }
         guard let prop = propertyDescriptors.filter({ $0.characteristicId == characteristic.uuid.uuidString }).first else { return }
         
         let writeOperation = WriteOperation(propertyDescriptor: prop, characteristicId: characteristic.uuid.uuidString)

        
        resumeWriteOperations()
    }
    }
    
    public final func peripheralManager(_ peripheral: CBPeripheralManager, didReceiveRead request: CBATTRequest) {

// MARK: - PERIPHERAL MANAGER DELEGATE METHODS

extension Clink: CBPeripheralDelegate {
    public final func peripheral(_ peripheral: CBPeripheral, didModifyServices invalidatedServices: [CBService]) {
        peripheral.discoverServices([self.service.uuid])
    }
