practice: add events for button
refactor: make the button a property