add preferExternalCache for cache location selection