Separate the task wrappers from the futures