add some comments for caching