Moved the uploader into its own package