anchor.diff:    fOwner := aPlayer;
     fSetup := aSetup;
   
  -  fBuilder := TKMCityBuilder.Create(aPlayer);
     fPredictor := TKMCityPredictor.Create(aPlayer);
  +  fBuilder := TKMCityBuilder.Create(aPlayer, fPredictor);
   end;
   
   
   destructor TKMCityManagement.Destroy();
   begin
  +  fPredictor.Free;
     fBuilder.Free;
  -  fPredictor.Free;
   
     inherited;
   end;
  
positive.code: 
    //Citizens
    // Make sure we have enough gold left for self-sufficient city
    if (P.Stats.GetWareBalance(wt_Gold) < LACK_OF_GOLD) AND (P.Stats.GetHouseQty(ht_Metallurgists) = 0) then
    begin
      Inc(UnitReq[ut_Serf], 3 * Byte(P.Stats.GetUnitQty(ut_Serf) < 3)); // 3x Serf
      Inc(UnitReq[ut_Worker], Byte((P.Stats.GetUnitQty(ut_Worker) = 0) AND (fSetup.WorkerCount > 0)));// 1x Worker
  
negative.code:     for UT := Low(UnitReq) to High(UnitReq) do
        Dec(UnitReq[UT], P.Stats.GetUnitQty(UT));
      //UnitReq[ut_Serf] := Round(fSetup.SerfsPerHouse * (P.Stats.GetHouseQty(ht_Any) + P.Stats.GetUnitQty(ut_Worker)/2));
      if (P.Stats.GetWareBalance(wt_Gold) < 15) AND (GoldProduced = 0) then // Dont train servs and workers when we will be out of gold
      begin
        UnitReq[ut_Serf] := 0;
        UnitReq[ut_Worker] := 0;
  