Give Task a type parameter, make getRunnable return an Optional, add getCallable method to retrieve the Callable used, add getFuture method to retrieve the result of the computation