docs: public InjectableStepsFactory buildStepsFactory(Configuration configuration) {
          List<Object> stepsInstances = new ArrayList<>();
          InjectableStepsFactory factory = null;
          if (finder.isAnnotationPresent(UsingSteps.class)) {
              List<Class<Object>> stepsClasses = finder.getAnnotatedClasses(
                      UsingSteps.class, Object.class, "instances");
              if (!stepsClasses.isEmpty()) {
                  for (Class<Object> stepsClass : stepsClasses) {
                      stepsInstances.add(instanceOf(Object.class, stepsClass));
                  }
                  factory = new InstanceStepsFactory(configuration,
                          stepsInstances);
              }
              List<String> packages = finder.getAnnotatedValues(UsingSteps.class,
                      String.class, "packages");
              if (!packages.isEmpty()) {
                  String matchingNames = finder.getAnnotatedValue(UsingSteps.class,
                          String.class, "matchingNames");
                  String notMatchingNames = finder.getAnnotatedValue(UsingSteps.class,
                          String.class, "notMatchingNames");
                  factory = new ScanningStepsFactory(configuration,
                          packages.toArray(new String[packages.size()]))
                          .matchingNames(matchingNames).notMatchingNames(notMatchingNames);
              }
          } else {
              annotationMonitor.annotationNotFound(UsingSteps.class, annotatedClass);
          }
  
          if (factory == null) {
              factory = new InstanceStepsFactory(configuration);
          }
          return factory;
      }