view model base