     case 2:
       //firing BK only
       float setBKpct = setBK / 100.0;
-      float onDuration = (float)window * setBKpct;
-      float offDuration = (float)window - onDuration;   
+      float BKonDuration = (float)window * setBKpct;
+      float BKoffDuration = (float)window - BKonDuration;   
       
       if (!paused)
       {
         //if (BKon)
         if (digitalRead(BKSSR))
         {
-          if ((currentMillis - previousMillis > (long)onDuration) && (setBK < 100))
-          {
-            previousMillis = currentMillis;
+          if ((currentMillis - previousMillis > (long)BKonDuration) && (setBK < 100))
+          {
             elementOff(2);
           }
         }
         else
         {
-          if (currentMillis - previousMillis > (long)offDuration)
-          {
-            previousMillis = currentMillis;
+          if (currentMillis - previousMillis > (long)BKoffDuration)
+          {
             elementOn(2);
           }
         }

long previousMillis = 0;
long tempPrevMillis = 0;
//boolean BKon = false;
 
#define Neutral 0
#define Press 1

          elementOff(0);
        }
        //now turn on RIMS
        if ((digitalRead(RIMSSSR) == LOW) && (currentMillis - previousMillis > RIMSoffDuration))
        {
          elementOn(1);
        }
	else
	{
          if ((currentMillis - previousMillis > RIMSonDuration) && (currRIMS > (setRIMS - 5)))
          {
            elementOff(1);

            //fire HLT?
            if ((!paused) && (currHLT < setHLT))
            {
              if (digitalRead(HLTSSR) == LOW)
              {
                elementOn(0);
              }
            }
          }
        }
      }
      else
