+}
+
+void setCirc(Shape community, int x1, int y1, int r, int dummy1, int dummy2, int dummy3)
+{
+ I_am(Circ);
+
+ self->x1 = x1;
+ self->y1 = y1;
+ self->r = r;
+}
+
+void nameRect(Shape community, str name)
+{
+ I_am(Rect);
+
+ self->desc = name;
+}
+
+/* Example of using object interface methods from inside constructor methods */
+
+construct(Tri) (Tri self, int x1, int y1, int x2, int y2, int x3, int y3)
+{
+ self->name = "TRIANGLE";
+ interface_of(self)->count++;
+ _(reset, self, x1, y1, x2, y2, x3, y3);
+
+ return self;
+}
+
+construct(Rect) (Rect self, int x1, int y1, int x2, int y2)
+{
+ self->desc = "rectangle";
+ interface_of(self)->count++;
+ _(reset, self, x1, y1, x2, y2, 0, 0);
+
+ return self;
+}
+
+construct(Circ) (Circ self, int x1, int y1, int r)
+{
+ self->comment = "Circle";
+ interface_of(self)->count++;
+ _(reset, self, x1, y1, r, 0, 0, 0);