public virtual void AddSubGoal(Goal <T> g) { }
public override void AddSubGoal(Goal <T> g) { SubGoals.Insert(0, g); }