begin implementing control FSM