rename to semver.io, generalize the cache