class SimpleTaskScheduler implements TinyScheduler {

    @Override
    public Future<?> schedule(String name, Runnable task, long delay, TimeUnit unit) {
        Assertion.notNullOrEmpty(name, "name");
        Assertion.notNull(task, "task");
        if (tasks.containsKey(name)) {
            throw new TaskExistsException(name);
        }
        TaskProxy proxy = new TaskProxy(name, task);
        ScheduledFuture<?> future = executor.schedule(proxy, delay, unit);
        tasks.put(name, future);
        return future;
    }

    public  SimpleTaskScheduler();
    public  SimpleTaskScheduler(ScheduledExecutorService executor);

}