 }
 
 @objc open class BPPeer: NSObject {
-    open var displayName: String = ""
+    open var displayName: String = "" // is HHService.name !
     open var socket: GCDAsyncSocket?
     open var role: RoleType = .unknown
     open var state: BPPeerState = .notConnected
     open var IP: String = ""
+    var resolvedAddressInfos: [HHAddressInfo] = []
     override open func isEqual(_ object: Any?) -> Bool {
         if let rhs = object as? BPPeer {
-            return self.IP == rhs.IP
+            return self.displayName == rhs.displayName
         } else {
             return false
         }
     }
     override open var hash: Int {
-        return self.IP.hash
-//        let acceptableChars = NSCharacterSet.init(charactersInString: "1234567890")
-//        var str = "1" + IP
-//        str = String(str.characters.filter { acceptableChars.containsCharacter($0) })
-//        return Int.init(str)!
+        return self.displayName.hash
     }
     open var keepaliveTimer: Timer?
     open var lastReceivedOrSentData: Date = Date.init(timeIntervalSince1970: 0)

            return
        }
        
        if moreComing {
            NSLog("BluepeerObject: moreComing, so waiting to get called again")
            return
        }
        
        guard let txtdata = service.txtData else {
            NSLog("BluepeerObject: serviceDidResolve IGNORING service because no txtData found")
            return

    weak open var sessionDelegate: BluepeerSessionManagerDelegate?
    weak open var dataDelegate: BluepeerDataDelegate?
    open var peers = Set<BPPeer>()
    var servicesBeingResolved = Set<HHService>()
    open var bluetoothState : BluetoothState = .unknown
    var bluetoothPeripheralManager: CBPeripheralManager
    open var bluetoothBlock: ((_ bluetoothState: BluetoothState) -> Void)?
