Instead of the `method_exists` call, wouldn't it be better to check if the object is an instance of an interface or something like that ?