add an gen_fsm exercise