improvement + start upload function