Refactor the idea of sending and receiving