ObserverEveryValueChanged Supports recursive property access and Code Cleanup