             
             self.connectedPeers.remove(at: i)
         }
+        
+        let peerManager = self.peerManager ?? self
+        
+        if peerManager.getSavedPeer(withId: peripheral.identifier) != nil {
+            peripheral.delegate = self
+            
+            let peer = ClinkPeer(peripheral: peripheral)
+            
+            if let i = self.connectedPeers.index(where: { $0.id == peripheral.identifier }) {
+                self.connectedPeers[i] = peer
+            } else {
+                self.connectedPeers.append(peer)
+            }
+            
+            self.centralManager.connect(peripheral, options: nil)
+        }
+    }
+    
     }
 }
 

        if self.centralManager.state == .poweredOn { return fn(OpperationResult.success(result: ())) }
        
        var attempts = 0
        
        Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in
            attempts += 1
            

                let peripherals = self.centralManager.retrievePeripherals(withIdentifiers: peripheralIds)
                
                for peripheral in peripherals {
                    guard let peer = peerManager.getSavedPeer(withId: peripheral.identifier) else { continue }
                    
                    peripheral.delegate = self
                    peer.peripheral = peripheral
                    
                    if let i = self.connectedPeers.index(where: { $0.id == peripheral.identifier }) {
                        self.connectedPeers[i] = peer
