class RepeatingRunnable implements Runnable {

    public static Cancelable startInDaemon(double delay, double period, String description, Runnable r, EventScheduler eventScheduler) {
        return startInDaemon(delay, period, description, eventTime -> r.run(), eventScheduler);
    }

    private  RepeatingRunnable(
            double time,
            double period,
            String description,
            Consumer<Double> timeConsumingAction,
            EventScheduler eventScheduler,
            boolean isDaemon,
            AtomicBoolean canceled,
            boolean fixedDelay);

}