Changed behaviour: Instead of storing initial value directly, shallow copy is created when value is either Array or Object