private short[] findY1(short t1Index, short t2Index){
		int numTries = 0;
		short pathT2Index = path[t2Index];
		x1Dist = dist(pathT2Index, path[t1Index]);
		
		short stopBefore = mod(t1Index - 2);
		for(short t3Index = mod(t2Index + 2); t3Index != stopBefore && numTries < LIMIT; t3Index = mod(t3Index + 1)){
//			visualizer.highlightLoose(4, path[y1.fromIndex], path[y1.toIndex]);
//			visualizer.sleep();
			y1Dist = dist(pathT2Index,path[t3Index]);
			boolean xIsBigger = x1Dist > y1Dist;
			if(xIsBigger){
				short[] newPath = findX2(t1Index, t2Index, t3Index); 
//				visualizer.dehighlight(1);
//				visualizer.sleep();
				if(newPath != null){
//					visualizer.setPath(newPath);
					return newPath; //Next step success
				}
			}
			numTries ++;
		}
		return null; //This step failed
	}