Updated with temporary IRQ buffer