改為狀態機風格