use file as cache