Refactored FileUpload