pre-listener