added default value for shallow_clone