Single event handler for all components