There will be multiple PBESettings that are equal to default settings for example, all being used around. MakeReadOnly() should be a method that accepts a PBESettings and outputs one, but will possibly use a cache of weakreference or something similar