Refactor into a fat model.
Distinguish uploads from overwrites.
Add an immutable mode when using uniquely versioned file names and aggressive caching.
Version bump.