refactor uploaders