private static void possible(ArrayList<String> list, City c, int turns, int times)
	{
		System.out.print("Called with " + turns + " number of turns, " + times + " iterations, and contents (" + list.size() + "): ");
		for (int i = 0; i < list.size(); i++)
			System.out.print(list.get(i) + " ");
		System.out.println();
		ArrayList<String> units = c.owner.techTree.allowedUnits;
		//ArrayList<String> impr = c.owner.techTree.allowedCityImprovements;
		int[] turnsUnits = new int[units.size()];
		//int[] turnsImpr = new int[impr.size()];
		if (times > 3) return;
		for (int i = 0; i < units.size(); i++)
		{
			turnsUnits[i] = MenuSystem.calcQueueTurnsInt(c, units.get(i));
		}
		/*for (int i = 0; i < impr.size(); i++)
		{
			turnsImpr[i] = MenuSystem.calcQueueTurnsInt(c, impr.get(i));
		}*/
		for (int i = 0; i < turnsUnits.length; i++)
		{
			if (turnsUnits[i] <= 0) continue;
			if (turns - turnsUnits[i] < 0) 
			{
				masterList.add(list);
				list.clear();
				return;
			}
			else
			{
				//list.add(units.get(i));
				ArrayList<String> temp = new ArrayList<String>(); //Pass a new object, not a reference
				for (String stringy: list)
					temp.add(stringy);
				temp.add(units.get(i));
				possible(temp, c, turns - turnsUnits[i], times+1);
			}
		}
		/*for (int i = 0; i < turnsImpr.length; i++)
		{
			if (turnsImpr[i] <= 0) continue;
			if (turns - turnsImpr[i] < 0) 
			{
				masterList.add(list);
				list.clear();
				return;
			}
			else
			{
				list.add(impr.get(i));
				possible(list, c, turns - turnsImpr[i], times+1);
			}
		}*/
	}