Upload updates

Build on the upgrade_to branch, which is still unmerged as well.
Could we get a doc string for `put()`?