wip on task() and when() returning futures (in comments)