implement an angular view model