Viewmodels and uploading