     // MARK: - NESTED TYPES
     
     public enum OpperationError: Error {
+        case pairingOpperationTimeout
         case centralManagerFailedToPowerOn
         case peripheralManagerFailedToPowerOn
     }

            
            NotificationCenter.default.post(name: Clink.Notifications.didDiscoverPeer, object: peer, userInfo: peer.data)
            
        case timeOfLastUpdateCharacteristic.uuid:
            guard
                let service = peripheral.services?.filter({ $0.uuid == self.serviceId }).first,

        
        guard RSSI.intValue > self.minRSSI else { return }
        
        let peerManager = self.peerManager ?? self
        
        if (self.peerManager ?? self).getSavedPeer(withId: peripheral.identifier) == nil {
            self.newlyDiscoveredPeripheral = peripheral
        }
                
        peripheral.delegate = self
        central.connect(peripheral, options: nil)
    }
    
    public final func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
        if self.logLevel == .verbose { print("calling \(#function)") }
        
        if newlyDiscoveredPeripheral?.identifier != peripheral.identifier {
            if let i = self.connectedPeers.index(where: { $0.id == peripheral.identifier }) { self.connectedPeers.remove(at: i) }
            
            let peer = ClinkPeer(id: peripheral.identifier)
            let peerManager = self.peerManager ?? self
            
            peer.peripheral = peripheral
            peerManager.save(peer: peer)
            
