class ChildReaper implements Closeable {

  public void start() throws Exception
  {
    Preconditions.checkState(state.compareAndSet(State.LATENT, State.STARTED), "Cannot be started more than once");

    task = executor.scheduleWithFixedDelay
        (
            new Runnable()
            {
              @Override
              public void run()
              {
                doWork();
              }
            },
            reapingThresholdMs,
            reapingThresholdMs,
            TimeUnit.MILLISECONDS
        );

    reaper.start();
  }

  public  ChildReaper(CuratorFramework client, String path, Reaper.Mode mode);
  public  ChildReaper(CuratorFramework client, String path, Reaper.Mode mode, int reapingThresholdMs);
  public  ChildReaper(CuratorFramework client, String path, Reaper.Mode mode, ScheduledExecutorService executor, int reapingThresholdMs);
  public  ChildReaper(CuratorFramework client, String path, Reaper.Mode mode, ScheduledExecutorService executor, int reapingThresholdMs, String leaderPath);

}