add p2p architecture