 			break;
 		case STATE_READY:
 			processSwitch();
-			if(currentSteps == 0){
-				programState = STATE_RUNNING;
-			}
 			break;
 		case STATE_RUNNING:
 			processSwitch();
 			if(currentSteps == introLadder[rung]){
 				programState = STATE_COMPLETE;
+			}else if(currentSteps != 0 && currentSteps % 75 == 0 && !justJumped){
+				programState = STATE_JUMPING;
+			}
+		case STATE_JUMPING:
+			processSwitch();
+			if(currentJumps == MAX_JUMPS){
+				currentJumps = 0;
+				justJumped = true;
+				programState = STATE_RUNNING;
 			}
 		case STATE_COMPLETE:
 			break;

			case STATE_SETUP:
				lcd.print("Select rung:");
				displayRung();
				displaySelectedSCR(1);
				break;
			case STATE_READY:
				lcd.print("S:C:R -");
				displaySelectedSCR(0);
				lcd.setCursor(0, 1);
				lcd.print("Step on to begin");
				break;
			case STATE_RUNNING:
				lcd.print("S:C:R -");
				displaySelectedSCR(0);
				lcd.setCursor(0, 1);
				lcd.print("Current:");
				displayCurrentSCR(1);
				break;
			case STATE_COMPLETE:
				lcd.print("DONE!");
				displaySelectedSCR(0);
				lcd.setCursor(0, 1);
				lcd.print("Current:");
				displayCurrentSCR(1);
				break;
			}
			

		}
	
		displayRung();
		displaySelectedSCR(LCD_LINE_ONE);
	}
}

void displayNumber(int num, int width, int pos, int line, char padding){
	lcd.setCursor(pos, line);
	
	Serial.print("num: "); Serial.print(num); Serial.print(", width: "); Serial.print(width); Serial.print(", line: "); Serial.println(line);

	while(width > 0 && num < pow(10, --width)){
		lcd.print(padding);
		lcd.setCursor(++pos, line);
	}

