split upload into its own file