   bool touched = (value - (ref >> offset)) > 40;
 
   if (touched & !pressed) {
-
     touchStart = millis();
-
   } else if (!touched & pressed) {
-
     if (mode == 3) {
-      mode = 2;
+      ON();
     } else if (millis() - touchStart < BUTTON_PRESS_THRESHOLD) {
-      mode += 1;
+      cycle();
     }
-
-    switch (mode) {
-      case 3:
-        mode = 0;
-      case 0:
-        OFF(); break;
-      case 1:
-        ACC(); break;
-      case 2:
-        ON(); break;
-    }
-
   }
 
   pressed = touched;
 
-  if (touched & millis() - touchStart > BUTTON_PRESS_THRESHOLD & mode != 3) {
+  if (pressed & millis() - touchStart > BUTTON_PRESS_THRESHOLD & mode != 3) {
     mode = 3;
     ST();
   }

}

void ON() {
  digitalWrite(pinACC, HIGH); // 2-3
  digitalWrite(pinIG1, HIGH); // 2-4
  digitalWrite(pinIG2, HIGH); // 7-6

}

void ACC() {
  mode = 1;
  digitalWrite(pinACC, HIGH); // 2-3
  digitalWrite(pinIG1, LOW);  // 2-4
  digitalWrite(pinIG2, LOW);  // 7-6
