initial commit, add memory and file cache