added more event callbacks