@Override
    public Object invoke(Object proxy, final Method method, final Object[] args) throws Throwable {
      try {
        return findStrategy(proxy, method).invokeMethod(getJavaMethod(method), proxy, args, myImplementations);
      }
      catch (InvocationTargetException e) {
        throw e.getCause();
      }
    }
@Override
    public Object invoke(Object proxy, final Method method, final Object[] args)