listen to pre instead of post