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

        (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(
