added progress, and uploads interruptable