private short[] findY2(short t1Index, short t2Index, short t3Index, short t4Index){
		int numTries = 0;

		short stopBefore = mod(t1Index - 1);
		short pathT4Index = path[t4Index];
		for(short t5Index = mod(t3Index + 2); t5Index != stopBefore && numTries < LIMIT; t5Index = mod(t5Index + 1)){
//			visualizer.highlightLoose(5, path[y2.fromIndex], path[y2.toIndex]);
//			visualizer.sleep();
			y2Dist = dist(pathT4Index,path[t5Index]);
			boolean xIsBigger = x1Dist + x2Dist > y1Dist + y2Dist;
			if(xIsBigger){
				short[] newPath = findX3Y3(t1Index, t2Index, t3Index, t4Index, t5Index);
//				visualizer.dehighlight(2);
//				visualizer.dehighlight(6);
//				visualizer.sleep();
				if(newPath != null){
//					visualizer.setPath(newPath);
					return newPath; //Next step success
				}
			}
			numTries ++;
		}
		return null; //This step failed
	}