 //                    break;
         
                 case DRIN:
-                    Serial.println("DRIN");
-                    stateMachine.transitionTo(drin_state);
-                    break;
+                	Serial.println("DRIN");
+					stateStartTime = millis();
+                	stateMachine.transitionTo(drin_state);
+                	break;
             }
           }
         }


FSM stateMachine = FSM(idle_state);		//	Initial SM with beginning state

unsigned long startTime;				//	Used to track times for Vacuum/Dwell timer
unsigned long setTimeLimit = 420000;		//	User defined time limit


int buttonState;             // the current reading from the input pin
int lastButtonState = HIGH;   // the previous reading from the input pin

	//		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);
