be able to handle button operations