add event listener hook