"When designing embedded systems, the logic quickly becomes complex, disorganized, and bewildering. You might eventually be able to get the logic to work with a mess of a code, but debugging will give you gray hairs and the code will possibly be near incomprehensive to others." - https://www.norwegiancreations.com/2017/03/state-machines-and-arduino-implementation/