private <A extends Annotation> void bindMethodHandler(
final Class<A> annotationType,
final EncounterProvider<MethodHandler> encounterProvider) {
bindListener(any(), new TypeListener() {
public <I> void hear(TypeLiteral<I> injectableType,
TypeEncounter<I> encounter) {
Class<? super I> type = injectableType.getRawType();
Method[] methods = type.getDeclaredMethods();
for (final Method method : methods) {