button interrupt, TODO: set flags for buttons