button now uses boolean for button state