add unit tests and start to build out view model