Uploader implementation part 1