a little optimization in mutators