Yes, preferably one way. Although I think it's nice to allow Circle((0,0), 2) instead of Circle(Point(0,0), 2) I think polymorphic input to Point is not necessary beyond Point and coordinates.