move image fetching to tileProvider, cache tile data