In many modern architectures, your client-application just receives simple Models from the server. These Models often don't have the logic you need in your application. It starts already with the missing information if the Model is changed or not. Without that information, you can't enable or disable the save-button based on the fact if the user has changed the Model or not. This is just one problem that is solved by the powerful Model-wrappers that we create in this course. These Model-wrappers will contain the typical functionality you need in your application: change notification, change tracking, and validation. You learn how to build these Model-wrappers by using Test Driven Development (TDD). And, as this course is about WPF and MVVM, you learn how to use the Model-wrappers in your MVVM-application. You learn how to highlight changed fields with a different background-color, how to display the original value of a changed field in the tooltip, how to highlight invalid fields, how to display validation errors, how to enable the save button only if there are changes, how to check for changes when closing a tab or even the application, how to reset the Model to its original state, and much more. Throughout this course, you learn how to extend a typical MVVM-based WPF-application called FriendStorage with all this functionality.