Implemented DRY upload