rewriting most of the peer comms