make tuple at call site, not when building initial state