@SuppressWarnings("unchecked")
  protected<T> RunnableFuture<T> newTaskFor(Callable<T> callable){
    if(callable instanceof CancellableTask) {
      return ((CancellableTask) callable).newTask();
    }
    else {
      return super.newTaskFor(callable);
    }
  }