 Any common operations desired for both a Circle and Ellipse can be abstracted out to a common interface that each class implements, or into mixins.Also, one may provide conversion methods like , which returns a mutable Ellipse object initialized using the circle's radius.From that point on, it is a separate object and can be mutated separately from the original circle without issue.