         lamps[lamp].fade(cycleFade[lamp], colors[random(0, 215)]);
       }
     }
-    else if(water[lamp] != 0) {
-      if(millis() > water[lamp]) {
-        waterCur[lamp] = (waterCur[lamp] + 1) % 748;
-        lamps[lamp].setColor(waterCols[waterCur[lamp]]);
-        water[lamp] += 100;
+    else if (waterFade[lamp] != 0) {
+      if (!lamps[lamp].fade()) {
+        waterCur[lamp] = (waterCur[lamp] + 1) % 747;
+        lamps[lamp].fade(waterFade[lamp], waterCols[waterCur[lamp]++]);
       }
     }
   }

  setColors();

  for (int lamp = 0; lamp < 4; lamp++) {
    //lamps[lamp].fade(2000, dayCols[10]);
    lamps[lamp].setColor(waterCols[0]);
  }
}


// We need to be able to stop the fading
void unset(int lamp) {
  cycleFade[lamp] = 0;
  waterFade[lamp] = 0;
  lamps[lamp].fadeStop();
}

