added event caching