add deep_copy option and tests