implement another more simple irq system