   // Set the brightness of LEDs:
   analogWrite(LED_BUTTON, brightness);
   analogWrite(LED_ON_BOARD, brightness);
-
+  
   // System is enabled, process as normal
-  if (digitalRead(KILL_SWITCH) == HIGH) { // HIGH = System Enabled, LOW = Disabled
+  if (digitalRead(KILL_SWITCH) == HIGH) { // HIGH = System Enabled LOW = Disabled (grounded)
     // If we were disabled move to OFF
     if (runState == DISABLED) {
       runState = OFF;
+      printState(runState);
     }
     // Read in the button state to see if it has been pressed
     int buttonState = digitalRead(PUSH_BUTTON);
     if (buttonState != previousButtonState) {
-      // Only transition on HIGH state so we do not bounce
-      if (buttonState == HIGH) {
+      // Transition on LOW (released) state for most states
+      if (buttonState == LOW) { // Released
+        Serial.println("Released");
         switch (runState){
           case DISABLED: // Disabled -> Off
             // This state should never be hit, but is included for completeness.

            break;
          case OFF: // Off -> Acc
            runState = ACC;
            digitalWrite(RELAY_ACC, LOW);
            digitalWrite(RELAY_IGN, HIGH);
            digitalWrite(RELAY_START, HIGH);
            break;
          case ACC: // Acc -> Start
            runState = START;
            digitalWrite(RELAY_ACC, HIGH);
            digitalWrite(RELAY_IGN, LOW);
            digitalWrite(RELAY_START, LOW);
            break;
          case START: // Start -> Run
            // This state should never really be hit since we bump from START->RUN when
            // we release the push button switch during the START sequence
            runState = RUN;
            digitalWrite(RELAY_ACC, HIGH);
            digitalWrite(RELAY_IGN, LOW);
            digitalWrite(RELAY_START, HIGH);
            break;
          case RUN: // Run -> Off
            runState = OFF;
            digitalWrite(RELAY_ACC, HIGH);
            digitalWrite(RELAY_IGN, HIGH);
            digitalWrite(RELAY_START, HIGH);
            break;
        }
        
        Serial.println("System State:");
        Serial.println(runState);
      } else {
        // Special case for START
        // When we release the push button in the START state we want to immediately
        // transition to RUN
        if (runState == START) {
          // Turn off starter solenoid and move to RUN
          digitalWrite(RELAY_START, HIGH);
          runState = RUN;
        }
      }
    }
    // Store button state for next cycle
    previousButtonState = buttonState;
  } else {
    runState = DISABLED;
    digitalWrite(RELAY_ACC, HIGH);
    digitalWrite(RELAY_IGN, HIGH);
    digitalWrite(RELAY_START, HIGH);
  }
  // Set brightness for next cycle
  setLedBrigtness();
  // Wait for 30 milliseconds
  delay(30);
}

/**

  digitalWrite(RELAY_ACC, HIGH);
  digitalWrite(RELAY_IGN, HIGH);
  digitalWrite(RELAY_START, HIGH);

  Serial.println("+------ Push Button Start System v1.0 ------+");
  Serial.println("| MIT License                               |");
  Serial.println("| Copyright (c) 2016-2017 Chris Fitzpatrick |");
  Serial.println("| https://github.com/synthtc/push_start     |");
  Serial.println("+-------------------------------------------+");
  printState(runState);
}

/**
