class Thingable{ var thing; }
class Delegator{
var delegate;
fcn operation{
if (delegate) delegate.thing;
else "default implementation"
}
class Delegate(Thingable){ thing = "delegate implementation" }