private static weighted count_Point(weighted w, int current_loc,int pre_loc,int final_location,int Path[], int Step_cycle){
		
		int internalPath[] = new int[Path.length+1];
		internalPath[Path.length] = current_loc;
		
		for(int i = 0;i < Path.length ;i++){
			internalPath[i] = Path[i];
			//System.out.println(internalPath[i]);
			
		}
		
		
		if (current_loc == final_location){	
			int FinalPath[] = new int[internalPath.length];
			FinalPath[Path.length] = final_location;
			for(int i = 0;i < internalPath.length ;i++){
				//System.out.print(FinalPath[i]);
				//System.out.print(" ");
				
				FinalPath[i] = internalPath[i];
			}
			FinalPath[0] = FinalPath.length-2;

			if (w.Path[0] == 0 || w.Path[0] > FinalPath[0]){
				
				w.Path = FinalPath;
				
			}
			return w;
		}
		
		for (int i = 0; i < w.size() ; i++){
			for (int i2 = 0; i2 < w.size() ; i2++){

				if (w.getEdgeLength(i,i2) > 0){
					boolean safe = true;
					for(int o = 1;o < Path.length;o++){
						if (Path[o] == i2){
							safe = false;
						}
					}				
					
					if (current_loc == i && safe == true){
						//System.out.println(" ");
						//System.out.println("LOC:" + i + " TO: " + i2);
						//System.out.println("Length Details:"+w.getEdgeLength(i,i2));
						//System.out.println("AVAILABLE CHOICE FOR TRAVEL");
						//System.out.println(">: " + w.getEdgeLength(i, i2)+ " : Distance to travel though this link");
						//System.out.println(">: "+w.Travel_Time[i][i2]+ " : CURRENT TRAVEL_TIME : 'zero' = NEW PATH");
						
						//Difference from full code
						if (Step_cycle < w.Path.length){
							// do nothing.
							
							//System.out.println("CURRENT PATH IS SHORTER");
							//System.out.println(">: " + w.Travel_Time[i][i2]+" : NEW TRAVEL TIME");						
						}
						else {
							//System.out.println("CURRENT PATH IS LONGER : NO CHANGE");
							//System.out.println(">: " + w.Travel_Time[i][i2]+" : OLD TRAVEL TIME");
							return w;
						}
						Step_cycle++;
						count_Point(w,i2,current_loc,final_location,internalPath,Step_cycle);
					}
				}	
			}
		}
		return w;
	}