support using a cache directory