Event-based timer interrupts

All of it.