started on caching. IViewModel -> ViewModelBase