new view model (not completed)