pass reactants and product by reference. why is private member "reactants" not defined as std::vector<Species> &   but without & instead?