         Clink.Configuration.dispatchQueue.async {
             task.delegate = nil
             
-            let peer: Clink.Peer = Clink.getOrCreatePeer(withId: peripheral.identifier.uuidString)
+            let peerId = peripheral.identifier.uuidString
             
             if let i = self.activePairingTasks.index(of: task) {
                 self.activePairingTasks.remove(at: i)
             }
             
-            self.publish(notification: .clinked(peer))
-            self.connect(peerWithId: peer.id)
+            self.publish(notification: .clinked(peerId))
+            self.connect(peerWithId: peerId)
         }
     }
     

            guard let dict = NSKeyedUnarchiver.unarchiveObject(with: data) as? [String: Any] else { return }
            
            let peerId = peripheral.identifier.uuidString
            let peer: Clink.Peer = Clink.getOrCreatePeer(withId: peerId)
            
            Clink.Configuration.peerManager.update(peerWithId: peerId, withPeerData: dict)
            
            self.publish(notification: .updated(peer))
        default:
            return
        }

        
        notificationHandlers[token] = handler
        
        handler(.initial(connectedPeerIds: connectedPeers.map({return $0.id})))
        
        return token
    }
