separate send and receive