improved viewModel further through looser coupling to the controller