add caching for image