using async for upload, other changes