finish basic upload functionality