public virtual void Exit(CStateMachine sm) { }
public virtual void Execute(CStateMachine sm) { }
public virtual void Enter(CStateMachine sm) { }