setters generally should check for equality against the existing value before doing anything expensive, though that may be difficult in this particular case