add to operationWithBlock for images
add image caching