class RunnableContext implements Context, Runnable {

    @Override
    public void run() {
        if (times == INFINITE || times > 0) {
            task.accept(this);
            if (times > 0) {
                times--;
            }
            
        } else {
            cancel();
        }
    }

      RunnableContext(Consumer<Context> task, long times);

}