Track changed properties in models