Event-based version