lots of polishing, better event sort