Snapshot events before firing, so if an event adds an event it does not flow into the newly added one