     
     public func addNotificationHandler(_ handler: @escaping Clink.NotificationHandler) -> Clink.NotificationRegistrationToken {
         let token = NotificationRegistrationToken()
-        let peerManager = Clink.Configuration.peerManager
         
         var connectedPeers: [ClinkPeer] = []
         
         for peripheral in activePeripherals where peripheral.state == .connected {
-            if let peer = peerManager?.getPeer(withId: peripheral.identifier.uuidString) {
-                connectedPeers.append(peer)
-            }
+            let peer = Clink.getOrCreatePeer(withId: peripheral.identifier.uuidString)
+            
+            connectedPeers.append(peer)
         }
         
         notificationHandlers[token] = handler

        (Clink.Configuration.peerManager ?? Clink.shared).delete(peer: peer)
    }
    
    // MARK: - PRIVATE METHODS
    
    fileprivate func connect(peerWithId peerId: String) {

        peripheral.delegate = self
        peripheral.discoverServices([self.serviceId])
        
        let peer = Clink.getOrCreatePeer(withId: peripheral.identifier.uuidString)
        
        publish(notification: .connected(peer))
    }
    
    public final func centralManager(
