 	int possibility = random(0, 100);
 	if (possibility < 70) {
 		runClassic();
-		blinkMax = 2;
+
+		blinkMax = 3;
 	} else if (possibility < 95) {
-		if (random(0, 10) == 0) {
+		if (random(0, 200) == 0) {
 			runBackgroundPattern();
 			runLetterPattern();
 		} else {
+			blinkMax = 5
+
 			runLetterPattern();
-			runBackgroundPattern();
-		}
-
-		blinkMax = 4
+
+			for (int i = 0; i < random(1, 5); i++) {
+				runBackgroundPattern();
+
+				if (random(0, 10) == 0) {
+				   	blinkLetters(random(1, blinkMax));
+				}
+			}
+		}
 	} else {
 		// super rare things
 	}

void outsideInOnInsideOutOffBackground(int times, int endingWithLightsOn) {
	for (int count = 0; count < times; count++) {
      backgroundOnOutsideIn();
      delay(extended);
		if (count + 1 != times || !endingWithLightsOn) {
			backgroundOffInsideOut();
	        delay(extended);
		}
	}
}

}

void insideOutOutsideInBackground() {
	for (int i = 0; random(3, 8); i++) {
		if (random(0, 2) == 0) {
			outsideInOnInsideOutOffBackground(random(1, 4), true);
			delay(minimal);

			insideOutOnOutsideInOffBackground(random(1, 4), false);
			delay(minimal);
		} else {
			insideOutOnOutsideInOffBackground(random(1, 4), true);
			delay(minimal);

			outsideInOnInsideOutOffBackground(random(1, 4), false);
			delay(minimal);
		}
	}
}

void racingOnLeftToRightBackground() {
