To Setup change tracking, add this tracker property to your view model:
viewModel.tracker = new ChangeTracker(viewModel);
Hook these into your view to determine when changes occur:
Hook this into your view model when you want to reset state in functions (ex: load, save):
Optionally, you can pass your own hashFunction for state tracking, too.