This document discusses porting a legacy application to use the Model-View-ViewModel (MVVM) and Composite Application Guidance (CAL) patterns. It defines key MVVM concepts like models, views, presenters, and presentation models. It outlines advantages of CAL like modularity, reusability, and separation of concerns. It then provides a sample scenario of a legacy life insurance application and steps to refactor it to use these patterns, including creating modules, services, and using regions to host views.