designing p2p