Unified event handling with 3 different patterns