         peripheral.delegate = self
         peripheral.discoverServices([self.serviceId])
         
-        let peerManager = Clink.Configuration.peerManager ?? self
-        
-        if let peer = peerManager.getPeer(withId: peripheral.identifier.uuidString) {
-            publish(notification: .connected(peer))
-        }
+        let peer = Clink.getOrCreatePeer(withId: peripheral.identifier.uuidString)
+        
+        publish(notification: .connected(peer))
     }
     
     public final func centralManager(

            case .error(let err):
                self.publish(notification: .error(err))
            case .success:
                let peerManager = Clink.Configuration.peerManager ?? self
                let peripheralIds = peerManager.getKnownPeers().map { return $0.id }
                
                for peripheralId in peripheralIds {
                    self.connect(peerWithId: peripheralId)

    {
        if error != nil { self.publish(notification: .error(.unknownError)) }
        
        let peer = Clink.getOrCreatePeer(withId: peripheral.identifier.uuidString)
        
        self.publish(notification: .disconnected(peer))
        self.connect(peerWithId: peripheral.identifier.uuidString)
    }
    
