這裡可以改用 state_machine 然後用 state_machine 判斷法