 
       for (index = 0; index < OPS; index++) // scan through ops 1-16 (everything but sas)
       {
-        if (opState[index] > 0) // check for debounce on current pin
+        if (opDebounce[index] > 0) // check for debounce on current pin
         {
-          opState[index]--; // decrement debounce counter for current state
+          opDebounce[index]--; // decrement debounce counter for current state
         }
         else // if not we can check to see if it's triggered
         {
+          uint16_t opMask = 1 << index; // get and save the current mask
+          
           // scan through 0b0000000000000001 to 0b1000000000000000 masks
           // if that switch is 1 then set it's state to DELAY_OP to flag
           // it to be sent out over serial, otherwise set it to zero
-          opState[index] =  ((1 << index) & data) ? DELAY_OP : 0;
+          opDebounce[index] =  (opMask & data) ? DELAY_OP : 0; // DELAY_OP signals state change
+
+          if (opState & opMask) // if it's on turn it off
+            opState &= ~opMask;
+          else                  // or vice versa
+            opState |= opMask;
 
           // increase the operations counter
           ops++;

    controlState = newState; // update the hilighted state

    // do hiligting stuff //
  }

  if (controlDebounce > 0) //

  }
  else
  {
    if (!digitalRead(PIN_ROT_CTRL_SW)) // if you press dis switch lock the sas control state
    {
      controlLocked = controlState; // update locked variable

