@Override
      public Object invoke(final Object proxy, final Method method, final Object[] args) {
        throw new AbstractMethodError(method.toString());
      }
@Override
      public Object invoke(final Object proxy, final Method method, final Object[] args)