     }
     
     public func delete(peerWithId peerId: String) {
-        UserDefaults.standard.removeObject(forKey: peer.id)
+        UserDefaults.standard.removeObject(forKey: peerId)
     }
 }


public class DefaultPeerManager: ClinkPeerManager {    
    public func createPeer<T: ClinkPeer>(withId peerId: String) -> T {
        let peer = Clink.Peer(id: peerId)
        
        UserDefaults.standard.set(peer.toDict(), forKey: peer.id)
        

    }
    
    public func update(peerWithId peerId: String, withPeerData data: [String: Any]) {
        guard let peer: Clink.Peer = self.getPeer(withId: peerId) else { return }
        
        peer.data = data
        
        UserDefaults.standard.set(peer.toDict(), forKey: peer.id)
    }
    
    public func getPeer<T: ClinkPeer>(withId peerId: String) -> T? {
        guard
            let peerDict = UserDefaults.standard.dictionary(forKey: peerId),
            let id = peerDict["id"] as? String,
            let peerData = peerDict["data"] as? [String: Any]
        else {
            return nil
        }
        
        return T(id: id, peerData: peerData)
    }
    
    public func getKnownPeers<T: ClinkPeer>() -> [T] {
