improve Upload
improve and add doc for Upload