ViewModelis the Kotlin architecture practice for separating data from UILiveDatais the lifecycle aware way to let a UI class subscribe to changes to data in aViewModel- Data Binding is the strategy that allows us to reference LiveData objects directly in our xml views to take shortcuts and remove extra code