ImageFetcher: ImageProgressListener => ImageFetchListener; singleton
caches by default.