improve the event handlers for catalogue