base::task new API