complete rewrite of services and view models