             newPeer.role = .client
             newPeer.socket = newSocket
             self.peers.append(newPeer) // always add as a new peer, even if it already exists. This might result in a dupe if we are browsing and advertising for same service. The original will get removed on receiving the name of other device, if it matches
-            DLog("accepting new connection from \(connectedHost). Peers(n=\(self.peers.count)) after adding:")
-            DLog(self.peers)
+            DLog("accepting new connection from \(connectedHost). Peers(n=\(self.peers.count)) after adding")
             
             // CONVENTION: CLIENT sends SERVER 32 bytes of its name -- UTF-8 string
             newSocket.readData(toLength: 32, withTimeout: Timeouts.header.rawValue, tag: DataTag.tag_NAME.rawValue)

            var peer = self.peers.filter({ $0.displayName == service.name }).first
            
            if let peer = peer {
                DLog(" didFind: found existing peer \(peer.displayName), replacing with newer service!!!")
                peer.lastService?.delegate = nil
                peer.lastService?.endResolve()
                peer.lastService = service
                DLog(" didFind: ...done")
            } else {
                peer = BPPeer.init()
                guard let peer = peer else { return }
                peer.displayName = service.name
                peer.lastService = service
                self.peers.append(peer)
                DLog(" didFind: created new peer \(peer.displayName). Peers(n=\(self.peers.count)) after adding: \(self.peers)")
            }
            
            let prots = UInt32(kDNSServiceProtocol_IPv4) | UInt32(kDNSServiceProtocol_IPv6)

    enum Timeouts: Double {
        case header = 40
        case body = 90
        case keepAlive = 16
    }
    
    // if queue isn't given, main queue is used
