Trying to follow the ViewModel pattern