add facility for button event and status flow