class DependencyPinger implements Dependency, StatusUpdateProducer, Runnable {

    @Override
    public Iterator<StatusUpdateListener> listeners() {
        return updateHandler.listeners();
    }

    public  DependencyPinger(@Nonnull final Dependency dependency);
      DependencyPinger(
            @Nonnull final Dependency dependency,
            @Nonnull final SystemReporter systemReporter
    );
      DependencyPinger(
            @Nonnull final Dependency dependency,
            @Nonnull final DependencyChecker checker
    );
      DependencyPinger(
            @Nonnull final ExecutorService executorService,
            @Nonnull final Dependency dependency,
            @Nonnull final SystemReporter systemReporter
    );
      DependencyPinger(
            @Nonnull final ExecutorService executorService,
            @Nonnull final Dependency dependency,
            final long pingPeriod,
            @Nonnull final SystemReporter systemReporter
    );
      DependencyPinger(
            @Nonnull final Dependency dependency,
            final long pingPeriod,
            @Nonnull final DependencyChecker dependencyChecker
    );

}