keep version info when expiring so only new versions need to be calculated
refactor into project
extract utils
extract checkout
refactor into checkout and file-cache
rename
split cache into multiple methods
refactor, breaks caches
v1.1.0