 		default:
 			break;
 	}
-	
-}
-
-void settingsMenu() {
-
-  do {
+
+  if (digitalRead(nextPin)) {
+    subviewIndex++;
+  }
+  if (digitalRead(prevPin)) {
+    subviewIndex--;
+  }
+
+}
+
+void settingsView() {
+
     Serial.println("Settings");
 
     Serial.print("Number of Measurements: ");

    if (digitalRead(prevPin)) {
      maxMeasurements--;
    }
    
  } while (!digitalRead(returnPin));

}

void chronoView() {
	Serial.println("Chrono");
}

void resultsView() {
	Serial.println("Results");
}

void checkMenuIndex() {
	if (digitalRead(nextPin)) {
		menuIndex++;
	}
	if (digitalRead(prevPin)) {
		menuIndex--;
	}
}


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;
