 /* End Variable Definitions */
 
 /* Menu Definitions */
-int menuIndex = 0;
+int viewIndex = 0;
+int subviewIndex = 0;
 
 void mainMenu();
-void settingsMenu();
+void settingsView();
 void chronoView();
 void resultsView();
 

		default:
			break;
	}
	
}

void settingsMenu() {

  do {
    Serial.println("Settings");

    Serial.print("Number of Measurements: ");

void setup() {
  Serial.begin(9600);   // Test
  Serial.println("Stopwatch");

  // Pin Modes
  pinMode(buzzerPin, OUTPUT);
  pinMode(laserPin, INPUT);
  pinMode(onPin, INPUT);

  pinMode(returnPin, INPUT);
  pinMode(prevPin, INPUT);
  pinMode(nextPin, INPUT);
  pinMode(setPin, INPUT);

  // Chrono initializations
  measurementTimeout.restart();
  chrono.stop();

  // Menu initializations
  views[mainMenuIndex] = mainMenu;
  views[settingsViewIndex] = settingsView;
  views[chronoViewIndex] = chronoView;
  views[resultsViewIndex] = resultsView;
}

void loop() {
  (*views[viewIndex]) ();
}

void mainMenu() {
	Serial.println("RaceTimer");

	switch(subviewIndex){
		case 0:
			Serial.println("Start");
			break;
