move listener to recv and sender