@SuppressWarnings("serial")
  public List<CandidateSteps> groovySteps() {
    final DefaultClassLoadingPicoContainer container =
        new DefaultClassLoadingPicoContainer(
            new ThreadCaching()
                .wrap(
                    new CompositeInjection(
                        new ConstructorInjection(),
                        new SetterInjection().withInjectionOptional())));
    container.change(Characteristics.USE_NAMES);
    container.addComponent(WebDriverProvider.class, driverProvider);
    // This loads all the Groovy classes in pages.*

    container.visit(
        new ClassName("pages.Home"),
        ".*\\.class",
        true,
        new DefaultClassLoadingPicoContainer.ClassVisitor() {
          public void classFound(Class clazz) {
            container.addComponent(clazz);
          }
        });

    ClassLoadingPicoContainer steps = container.makeChildContainer("steps");
    steps.addComponent(new ClassName("housekeeping.EmptyCartIfNotAlready"));
    steps.addComponent(new ClassName("EtsyDotComSteps"));

    return new PicoStepsFactory(configuration, steps).createCandidateSteps();
  }