add cache_dir keyword argument