public virtual IState execution() { foreach (Transition tt in this.transition) { IState temp = tt.check(); if (temp != null) { return temp; } } return this; }