add cache file support