add support for image loading and caching