refactor with normalized-upload module