prototypes of download and upload