more correct events ordering