use delay vs on receive