async task for image caching