Forward functor parameters properly.
Move futures, don't copy them.