Finished most of the communication logic - it is able to deal with pairs!