deep copy for sets