 // ================================================================================== //
 
 
-void ledMatrixOFF()
+int frontLEDCheck()  // Turns front facing LED on/off
+{
+  LEDState = digitalRead(frontLEDButton);
+  
+  if (LEDState != LEDLastState)                              // Compare the LEDState to its previous state
+  if (LEDState == HIGH) LEDButtonCount++;                    
+  
+  LEDLastState = LEDState;                                   // Save current state for next loop
+  
+  if (LEDButtonCount == 1) digitalWrite(frontLED, HIGH );
+  else 
+  {
+  LEDButtonCount = 0;
+  digitalWrite(frontLED, LOW);
+  }
+}
+
+// Turns neomatrix panel off
+void ledMatrixOFF()  
 {
   strip.setBrightness(0);
-  strip.show();                                        // ... both of these functions
-}
-
-
-void reminderSwitchCheck()                                   // Checks Switch & Activates LED
-{
-  int reminderState = digitalRead(reminderSwitch);        // Check Reminder Switch
-  if (reminderState == HIGH) rainbowCycle(20);
-  else if ((reminderState == LOW) && (decimalTime != 420)) ledMatrixOFF();
-}
-
-
-void beep(int note, int duration)                        // Creates Individual Notes & Alternates LED's
+  strip.show();                                        
+}
+
+
+void pixelSwitchCheck()   // Checks Switch & Activates LED
+{
+  int pixelSwitchState = digitalRead(neoPixelSwitch);        
+  if (pixelSwitchState == HIGH) rainbowCycle(20);
+  else if ((pixelSwitchState == LOW) && (decimalTime != 420)) ledMatrixOFF();
+}
+
+
+void beep(int note, int duration)  // Creates Individual Notes & Alternates LED's for melody                        
 {
   long interval = 20;
   unsigned long currentMillis = millis();
   if (currentMillis - previousMillis > interval)
   {
     previousMillis = currentMillis;
-    tone(piezoOut, note, duration);                          //Play tone on buzzerPin
-    if (noteCounter % 2 == 0)                                // Alternate Green then UV LED's
+    tone(piezoSpeaker, note, duration);              // Play tone on buzzerPin
+    if (noteCounter % 2 == 0)                    // Alternate Green then Purple
     {
+      digitalWrite(frontLED, LOW);
+      
       uint16_t j;
       for (j = 0; j < 40 ; j++)
       {

      }
      delay(duration);
    }
    noTone(piezoOut);
    noteCounter++;
  }
}


void rainbowCycle(uint8_t wait)                             // Runs rainbow led fade
{
  strip.setBrightness(neoBrightness);
  uint16_t i, j;

  for (j = 0; j < 256 ; j++)

// ================================================================================== //


void debounceSwitches()  // Smooth button presses
{
  for (byte i = 0; i < numBtns; i++)
  {
    static byte previousstate[numBtns];
    static byte currentstate[numBtns];
    static long lasttime;
    byte index;

    if (millis() < lasttime) lasttime = millis();                 // we wrapped around, try again
    if ((lasttime + DEBOUNCE) > millis()) return;                 // not enough time has passed to debounce
    lasttime = millis();                                          // waited DEBOUNCE milliseconds, reset timer

    for (index = 0; index < numBtns; index++)
    {
      currentstate[index] = digitalRead(buttons[index]);          // read the button
      if (currentstate[index] == previousstate[index])
