Introduction to Model-View-View-Model (MVVM) Pattern