refactored upload user image