added `simulateEvent()`