docs: public DynamicType make(String auxiliaryTypeName,
                              ClassFileVersion classFileVersion,
                              MethodAccessorFactory methodAccessorFactory) {
          MethodDescription accessorMethod = methodAccessorFactory.registerAccessorFor(specialMethodInvocation, MethodAccessorFactory.AccessType.DEFAULT);
          LinkedHashMap<String, TypeDescription> parameterFields = extractFields(accessorMethod);
          DynamicType.Builder<?> builder = new ByteBuddy(classFileVersion)
                  .with(TypeValidation.DISABLED)
                  .with(PrecomputedMethodGraph.INSTANCE)
                  .subclass(Object.class, ConstructorStrategy.Default.NO_CONSTRUCTORS)
                  .name(auxiliaryTypeName)
                  .modifiers(DEFAULT_TYPE_MODIFIER)
                  .implement(Runnable.class, Callable.class).intercept(new MethodCall(accessorMethod, assigner))
                  .implement(serializableProxy ? new Class<?>[]{Serializable.class} : new Class<?>[0])
                  .defineConstructor().withParameters(parameterFields.values())
                  .intercept(ConstructorCall.INSTANCE);
          for (Map.Entry<String, TypeDescription> field : parameterFields.entrySet()) {
              builder = builder.defineField(field.getKey(), field.getValue(), Visibility.PRIVATE);
          }
          return builder.make();
      }