       delay(extended);
 		if (count + 1 != times || !endingWithLightsOn) {
 			backgroundOffInsideOut();
+	        delay(extended);
 		}
 	}
 }

	delay(normal);
}

// Arduino loop

void loop() {
    allOff();

	int possibility = random(0, 100);
	if (possibility < 70) {
	    lettersOnLeftToRight();
	    classicBackground();
	} else if (possibility < 95) {
		// if new patterns are added, add a new case statement, and bump up the max random value by one
        switch (random(0, 2)) {
       	case 0: { lettersOnLeftToRight(); break; }
		case 1: { blinkLetters(random(5, 10)); break; }
		default: { break; }
		}

		switch(random(0, 4)) {
		case 0: { classicBackground(); break; }
		case 1: { insideOutOutsideInBackground(); break; }
		case 2: { racingOnLeftToRightBackground(); break; }
		case 3: { blinkBackground(random(5, 10)); backgroundAllOn(); break; }
		}
	} else {
		// super rare things
	}

   	blinkLetters(random(3, 7));

   	lettersAllOff();



void insideOutOutsideInBackground() {
	outsideInOnInsideOutOffBackground(random(2, 5), true);
	delay(ish);

	insideOutOnOutsideInOffBackground(random(2, 5), false);
	delay(minimal);
}

void racingOnLeftToRightBackground() {
