implementing p2p send for io