A set of classes for using a momentary buttons as momentary buttons, latching buttons, counters, and enumerators. A set of classes for using momentary buttons as momentary buttons, latching buttons, counters, and enumerators. Includes debouncing. The library is designed so other classes can take a class as an argument and have always on, momentary, and/or latching behavior automatically handled without further effort.