anchor.diff:    NewGroup.fSelected := NewLeader;
     NewGroup.fTimeSinceHungryReminder := fTimeSinceHungryReminder;
     NewGroup.fOrderLoc := KMPointDir(NewLeader.CurrPosition, fOrderLoc.Dir);
  -  NewGroup.UpdatePushbackLimit;
   
     //Set units per row
     UnitsPerRow := fUnitsPerRow;
  
positive.code:   OrderExecuted: Boolean;
    P: TKMPointExact;
    U: TKMUnitWarrior;
  
    function PushbackLimitReached: Boolean;
    begin
      Result := fMembersPushbackCommandsCnt > fPushbackLimit;
    end;
  
  begin
    OrderExecuted := False;
  
  
negative.code:     goNone:         OrderExecuted := False;
      goWalkTo:       begin
                        OrderExecuted := True;
                        pushbackLimit := GetPushbackLimit; //Save it to avoid recalc for every unit
                        for I := 0 to Count - 1 do
                        begin
                          pushbackLimitReached := fMembersPushbackCommandsCnt > pushbackLimit;
                          OrderExecuted := OrderExecuted and Members[I].IsIdle and (Members[I].OrderDone or pushbackLimitReached);
  
                          if Members[I].OrderDone then
                          begin
  