button event listener
Merge https://github.com/dirty-mechanics-3932/ButtonListener