check for mutable values in complete(), not just when an attribute is explicitly re-set