improved _create_cached_image which now reads less and actually uses the cached images