restructed event handling