@RuntimeType
    @BindingPriority( BindingPriority.DEFAULT * 2 )
    public Object interceptDefault( @DefaultCall final Callable<?> zuper, @This final Object receiver, @Origin Method method,
            @AllArguments final Object[] parameters,
            @FieldProxy( INTERCEPTOR_FIELD_NAME ) StepInterceptorGetterSetter stepInterceptorGetter )
            throws Throwable{

        StepInterceptor interceptor = (StepInterceptor) stepInterceptorGetter.getValue();

        if( interceptor == null ) {
            return zuper.call();
        }

        return interceptor.intercept( receiver, method, parameters, zuper::call );
    }
StepInterceptorImpl that uses ByteBuddy Method interceptor with annotations for intercepting JGiven methods
jgiven-core/src/main/java/com/tngtech/jgiven/impl/intercept/ByteBuddyMethodInterceptor.java