 
     case Mode::SPINNING:
     {
-      static bool changedUIString = false;    //*** because changedUIString is static, its state will always persist
+      static bool changedUIString = false;
       if(!changedUIString)
       {
         analogWrite(MOTOR_PIN, motorSpeed);   // set motorSpeed once and you're done--the voltage stays there!
 
         lcd.setCursor(0, 1);
         lcd.print(F("Finished in: "));
-        changedUIString = true;               //*** this block becomes unreachable after this, because this true value is remembered
+        changedUIString = true;
       }
 
       unsigned long secondsLeft = (setDuration - (millis() - spinningStartTime))/1000;  //*** save RAM AND flash memory by only doing this calculation once per case in loop()

  {
    case Mode::SETTING_TIME:
    {
      setDuration = map(analogRead(POT_PIN), 0, 1024, 0, 901);

      lcd.setCursor(0, 1);
      lcd.print(F("Set time: <"));
      lcdPrintFormattedSecs(setDuration);
      lcd.print(F(">   "));


                                                      //    their values persist even after function ends, as long as the program is still running
                                                      //*** also, static local variables still only have local scope
                                                      //*** perform operations with data of the same type, so as to boost performance by not needing to typecast
  static unsigned long setDuration;                   // the duration that the centrifuge should run
  static unsigned long spinningStartTime;             // point on the timeline where the countdown starts, i.e. when wpb is pressed the second time
  static uint8_t motorSpeed;

