public static String generateTree(City c)
	{
		TechTree tech = c.owner.techTree;
		HashMap<String, Integer> predictedGain = new HashMap<String, Integer>(); 
		for (String action: tech.allowedUnits)
		{
			predictedGain.put(action, generateTreeForCityUnit(c, action));
		}
		for (String action: tech.allowedCityImprovements)
		{
			boolean discount = false;
			for (Improvement en: c.buildings) //Check if building is already built
			{
				if (en.name.equals(action))
				{
					discount = true;
					break;
				}
			}
			if (discount) continue; //was there a better way for this? do i have to use something like "qualifier:"?
			predictedGain.put(action, generateTreeForCityBuilding(c, action));
		}
		String max = null; int maxValue = -1;
		for (Entry<String, Integer> en: predictedGain.entrySet())
		{
			if (en.getValue() > maxValue) max = en.getKey();
		}
		return max;
	}