Fundamental interfaces and internal implementations necessary to create and run a Ballast ViewModel