DoChangeState only at the end