pass report_fsm but I think there is something wrong with it