It mirrors what we do with operators, where we pass along the set of operators to use, rather than a reference for how to get them. It feels like it makes the function more flexible and less tied to the particulars of how the fields are currently split up.