implemented sendFirst() and receiveFirst() (UNTESTED!)