refactor run_receive_hook()