public StateMachineInner(string name, StateMachineKernel <TState> kernel, IStateMachine <TState> outerStateMachine, TState parentState)
 {
     this.Name              = name;
     this.Kernel            = kernel;
     this.outerStateMachine = outerStateMachine;
     this.parentState       = parentState;
 }
 internal ChildStateMachine(string name, StateMachineKernel <State> kernel, State parentState)
 {
     this.InnerStateMachine = new StateMachineInner <State>(name, kernel, this, parentState);
 }