private void solveGuess() {
		for (Entry<Integer, ArrayList<Integer>> e : maybe.entrySet()) {
			Integer indexMaybe = e.getKey();
			ArrayList<Integer> options = e.getValue(); //possible values for this slot
			int indexEmpty = Util.getFirstEmptySlot(sudoku);
			if (indexMaybe != indexEmpty)
				return; //this should never happen!
			
			boolean succes = false;
			for (Integer option : options) { //loop through the possible options to see if any of them fit
				if (fit(indexMaybe, option)) {
					Util.dprint("FIT index " + indexMaybe + ", value: " + option);
					succes = true;
					break;
				}
			}
			if (!succes) { //none of our options fitted
				Util.dprint("NO FIT index " + indexMaybe);
				//change the value of the previous option(go back up the tree and take a different path)
				maybe.get(indexMaybe).remove(0); //0 get indexMaybe of previous index
				break;
			}
		}
	}