             self.delegate?.clink(self, didCatchError: err)
         }
         
-        if characteristic.uuid == timeOfLastUpdateCharacteristic.uuid, let char = self.getPeerDataCharacteristic(forPeripheral: peripheral) {
+        if characteristic.uuid == timeOfLastUpdateCharacteristic.uuid {
+            guard
+                let service = peripheral.services?.filter({ $0.uuid == self.serviceId }).first,
+                let char = service.characteristics?.filter({ $0.uuid == self.serviceCharacteristic.uuid }).first
+            else {
+                return
+            }
+            
             peripheral.readValue(for: char)
         } else if characteristic.uuid == serviceCharacteristic.uuid {
             print("did udpate service char value")

        }
    }
    
    fileprivate func getPeerDataCharacteristic(forPeripheral peripheral: CBPeripheral) -> CBCharacteristic? {
        return peripheral.services?.filter({ $0.uuid == self.serviceId }).first?.characteristics?.filter({ $0.uuid == self.serviceId }).first
    }
    
    // MARK: - PUBLIC METHODS
    
    /**

        
        guard let services = peripheral.services else { return }
        
        for service in services where service.uuid == self.serviceId {
            peripheral.discoverCharacteristics(nil, for: service)
        }
    }
