Move interrupt handlers more into the controller rather than Button