re-working a bit of the syncing internals so that file uploading can have a more custom post-api-sync "experience"