refactoring; implement more interrupts