changes to event handling logic (remove repeat fires)