refactor multi upload