mostly there with viewmodels