Big refactor to put the commands back into the view models.