rework event handling