add image caching