enhanced the caching a little bit