refactor interrupt handlers to use singletons