well i have to say i dont really see the difference between an implicit and explicit interface. the example you gave looks like it works just like the example i gave. in your example the check for the function is performed at runtime. in the example i gave the check for the interface is performed at runtime. the only difference is that in mine php does the check and in yours method_exists() does the check. if somebody wanted to do something innocuous in the lawn mower example they could try to cut a brick; that would probly bend the blades or something. -nathan