docs: protected Method findHookMethod(Object hook, String methodName) {
          final Method hookMethod = Stream.of(hook.getClass().getMethods()) // always public method
                  .filter(method -> method.getName().equals(methodName))
                  .findFirst()
                  .orElseThrow(() -> { // no way
                      return new IllegalStateException("Not found the method in hook: " + methodName + ", " + hook);
                  });
          return hookMethod;
      }