removed fsm approach