   void on()  { stateChange(true); } // fill time
   void off() { stateChange(false); }// drain time
   void step(monitor_t* now) {       // check conditions and adjust state
-    /* TODO
     if(! running) {
-      if(startTime >= millis()) {
+      if(startTime >= millis())
         running = true;
-        ...
-      }
-    }
-    */
+      else
+        return;
+    }
   }
 };
 int Valve::counter = 1;             // definition (the above only declares)

    long t = millis();
    long nextCycleStart = t;
    for(int i = 0; i < numValves; i++) {
      // TODO valves[i].startTime = nextCycleStart;
      // nextCycleStart += getStaggerMillis();
    }
  }
  void step(monitor_t* now) {


/////////////////////////////////////////////////////////////////////////////
// valves and flow control //////////////////////////////////////////////////
/*
user settable parameters:
- per elf:
