made event callbacks asynchronous