caching all reflection thingie