 // Dwell state, with accompanying update function for extra dwell state behaviours	
 State dwll_state = State(dwell, dwellUpdate, NULL);		
 
-// Drain state
-State drin_state = State(drain);	
+// Drain state, with timeout of X seconds
+State drin_state = State(drain, drainUpdate, NULL);	
+
+State done_state = State(done);
 
 FSM stateMachine = FSM(idle_state);		//	Initial SM with beginning state
 

extern void drain();
extern void vacuumUpdate();
extern void dwellUpdate();

////	Define the states within the SM


long debounceDelay = 100;    // the debounce time; increase if the output flickers

// Different states of the machine: Idle, Vacuum, Dwell, and Drain
enum states {IDLED, VACU, DRIN, DONE, DWLL};
const byte NUM_OF_STATES = 4;	//	Number of total states
Adafruit_NeoPixel ledStat = Adafruit_NeoPixel(1, NEOPIX, NEO_GRB + NEO_KHZ800);		//	Neopixel initializiation

void setup() {
