Changed to use interrupts for the buttons