Now that you have me thinking, I wonder if the better approach would be simply to have an "ellipse" property on the object, without any other properties.  Then if a polyline or polygon property exists, it will just use the ellipse property to get it's position data.  I think this might actually be a cleaner implementation and allows us to easy add other surface shapes.