sketched out the communication platform. Just need to fill out the algorithm