'Retrieve an exposed method with the given name from the given instance.
@raise UnexposedMethodError: Raised if C{default} is not specified and
there is no exposed method with the given name.
@return: A callable object for the named method assigned to the given
instance.'

def get(self, instance, methodName, default=_nodefault):

    method = getattr(instance, methodName, None)
    exposedThrough = getattr(method, 'exposedThrough', [])
    if (self not in exposedThrough):
        if (default is self._nodefault):
            raise UnexposedMethodError(self, methodName)
        return default
    return method
