Simplify dynamic JavaScript UIs with the Model-View-View Model (MVVM) pattern