The logic to execute the task. Shouldn't be called directly but rather through run
@protected Future<T> execute();