add fsm stuff