future: avoid implicit vector copy