better event specification