improve the event handler for catalogue