Add event-based variant