Add dirty tracking for nested objects
Only copy over object properties, not simple values
Fix dirty tracking