 
 FSM stateMachine = FSM(idle_state);		//	Initial SM with beginning state
 
-unsigned long startTime;				//	Used to track times for Vacuum/Dwell timer
+unsigned long startTime;			//	Used to track times for Vacuum/Dwell timer
 unsigned long setTimeLimit = 420000;		//	User defined time limit
 
+unsigned long stateStartTime;			//	Used to track times for entering Vacuum/Dwell states
+unsigned long stateDebounceLimit = 30000;	//	Used to define state debounce time limit
 
 int buttonState;             // the current reading from the input pin
 int lastButtonState = HIGH;   // the previous reading from the input pin

//                    break;
        
                case DRIN:
                    Serial.println("DRIN");
                    stateMachine.transitionTo(drin_state);
                    break;
            }
          }
        }

	//		Ensures timer has priority over pressure.
	if ((millis() - startTime) > setTimeLimit) {
		stateMachine.immediateTransitionTo(drin_state);
	} else if ((digitalRead(PRS_SEN) == HIGH) && ((millis() - stateStartTime) > stateDebounceLimit)) {
	    	//	If pressure is below set pressure threshold, return to 
	    	//		Vacuum state to repressurize. 
		stateMachine.immediateTransitionTo(vacu_state);
