add listeners to button