class NvaMonitor implements AutoCloseable {

    public synchronized Future<Void> start() throws NvaMonitorException {
        //log.debug("executorService.isShutdown(): " + executorService.isShutdown());
        //Preconditions.checkState(!executorService.isShutdown(), "Already started");
        Preconditions.checkState(!this.isRunning, "Already started");
        // We need to eventually support multiple monitors, but for now, just grab the
        // first one.
        MonitorConfiguration monitorConfiguration =
            this.configuration.getMonitors().get(0);
        Callable<Void> monitor = createMonitorCallable(monitorConfiguration);
        isRunning = true;
        Future<Void> task = executorService.submit(
            monitor
        );

        return task;
    }

    public  NvaMonitor(DaemonConfiguration configuration);

}