add modification to support upload / download from scratch