Event-oriented button class made with this in mind
Lightweight timings and measurements you can leave disabled after development.
Detailed debug memory logging to track where memory is disappearing to.
Limit how often a method will be invoked despite calling it many times.