refactor out Client.Peer