introduced caching layer for reflection