@Override
	public String solve(Cube cube){
		String movements = "";
		for (int f = 1; f < 6; f = f == 2 ? f + 2 : f + 1) {
			TileColor c1 = TileColor.get(f);
			if (c1.getInt() != 0 && c1.getInt() != 3) {
				TileColor c2 = c1.getInt() == 2 ? TileColor.get(4) : c1.getInt() == 5 ? TileColor.get(1) : TileColor.get(c1.getInt() + 1);
				String cornerTop = putCornerOnTop(cube, c1, c2);
				String edgeTop = putEdgeOnTop(cube, c1, c2);
				String algorithm = findAlgorithm(cube, c1, c2);
				movements += cornerTop;
				movements += edgeTop;
				movements += algorithm;
			}
		}
		return movements;
	}