refine upload work flow