adding event generation