user logic fsm added