add state transition