public virtual void AddSubgoal(Goal <T> g) { }
public override void AddSubgoal(Goal <T> g) { SubGoals.Push(g); }