final overhaul of uploading interface