Use button state change to bypass "tricky" boolean logic?

  if (buttonState != lastButtonState  && buttonState == LOW) {