emit events in order