 }
   
 void apply(int r, int g, int b){
-	analogWrite(9,r); // red transistor base pin @ 9
-	analogWrite(10,g); // green transistor base pin @ 10
-	analogWrite(11,b); // blue transistor base pin @ 11
-}
-
-void fullfade(int wait){   // fade from red to green
-	int r=255;int g=0;int b=0;
-	for(int del=0;del<256;del++)
-	{
-		apply(r-del,g+del,b);
-		delay(wait);
+	analogWrite(10,r); // red transistor base pin @ 9
+	analogWrite(11,g); // green transistor base pin @ 10
+	analogWrite(9,b); // blue transistor base pin @ 11
+}
+
+void fullfade(){   // fade from red to green
+	while(1){
+
+		int r=255;int g=0;int b=0;
+		for(int del=0;del<256;del++)
+		{
+
+			int wait= analogRead(A3)/20;
+			apply(r-del,g+del,b);
+			delay(wait);
+			if(consolidate()==LEFT) return;
+			lcd.setCursor(14,0);
+			lcd.print(wait);
+			lcd.print("  ");
+		}
+		// fade from green to blue
+		r=0;g=255;b=0;
+		for(int del=0;del<256;del++)
+		{	
+			int wait= analogRead(A3)/20;
+			apply(r,g-del,b+del);
+			delay(wait);
+			if(consolidate()==LEFT) return;
+			lcd.setCursor(14,0);
+			lcd.print(wait);
+			lcd.print("  ");
+		}
+		// fade from blue to red
+		r=0;g=0;b=255;
+		for(int del=0;del<256;del++)
+		{
+			int wait= analogRead(A3)/20;
+			apply(r+del,g,b-del);
+			delay(wait);
+			if(consolidate()==LEFT) return;
+			lcd.setCursor(14,0);
+			lcd.print(wait);
+			lcd.print("  ");
+		}
 	}
-	// fade from green to blue
-	r=0;g=255;b=0;
-	for(int del=0;del<256;del++)
-	{
-		apply(r,g-del,b+del);
-		delay(wait);
-	}
-	// fade from blue to red
-	r=0;g=0;b=255;
-	for(int del=0;del<256;del++)
-	{
-		apply(r+del,g,b-del);
-		delay(wait);
-	}
 }
 
 void customCol(){
-	int rpot, gpot, bpot;
-	rpot=analogRead(A2);
-	delay(15);
-	gpot=analogRead(A3);
-	delay(15);
-	bpot=analogRead(A4);
-	delay(15);
-	apply(rpot/4,gpot/4,bpot/4);
-	lcd.print(rpot/4);
-	lcd.print(" ");
-	lcd.print(gpot/4);
-	lcd.print(" ");
-	lcd.print(bpot/4);
-	lcd.print("  ");
-	lcd.setCursor(0,0);
-	delay(50);
-
-}
-
+	while(1){
+		int rpot, gpot, bpot;
+		lcd.setCursor(0,0);
+		lcd.print(" RED GREEN BLUE ");
+		rpot=analogRead(A3);
+		lcd.setCursor(1,1);
+		lcd.print(rpot*10/102);
+		if(consolidate()==LEFT) return;
+		lcd.print(" ");
+		gpot=analogRead(A4);
+		lcd.setCursor(6,1);
+		lcd.print(gpot*10/102);
+		if(consolidate()==LEFT) return;
+		lcd.print(" ");
+		bpot=analogRead(A5);
+		lcd.setCursor(12,1);
+		lcd.print(bpot*10/102);
+		if(consolidate()==LEFT) return;
+		lcd.print(" ");
+		apply(rpot/4,gpot/4,bpot/4)
+;	}
+}
+
+void strobeMode(){
+	while(1){
+		int delayTime=analogRead(A3);
+		lcd.setCursor(12,0);
+		lcd.print(delayTime);
+		lcd.print("  ");
+		apply(modeCols[1][0],modeCols[1][1],modeCols[1][2]);
+		if(consolidate()==LEFT) return;
+		delay(delayTime+5);
+
+		delayTime=analogRead(A3);
+		apply(0,0,0);
+		if(consolidate()==LEFT) return;
+		delay(delayTime+5);
+		}
+
+}
 void loop(){ //Menu navigation - pushes to the functions.
 	if(millis()<100){delay(100);} // don't jump the gun!
-	apply(255,0,0);
+	apply(modeCols[2][0],modeCols[2][1],modeCols[2][2]);
 	int cons=consolidate();
 	Serial.println(cons);
 	switch(cons){ // Choose what to do with an input/ no input

				    default:
				    	Serial.print("error55");
				    	break;
				}
			break;

		case LEFT:

		  			lcd.print('error');
		  			break;
			}
			break;
			
		case UP:
			switch (upDown[currentMenu]) {
