add the rest of the send-recv functions