events can be in random orders