improved upload process