add basic upload functionality