flexible uploader