diff --git a/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp b/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp
index d8688eaa203cb898279f4334e3cf959e8f843121..7d3a0b5a718917a35c4451cefcacf53d37f45b4e 100644
--- a/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp
+++ b/ChemistryLib/PhreeqcIOData/CreateReactionRate.cpp
@@ -29,17 +29,18 @@ std::vector<ReactionRate> createReactionRates(
             //! \ogs_file_param{prj__chemical_system__rates__rate__kinetic_reactant}
             rate_config.getConfigParameter<std::string>("kinetic_reactant");
 
-        std::vector<std::string> expression_statements;
         auto const expression_config =
             //! \ogs_file_param{prj__chemical_system__rates__rate__expression}
             rate_config.getConfigSubtree("expression");
-        for (
-            auto const& expression_statement :
+        auto const& statements =
             //! \ogs_file_param{prj__chemical_system__rates__rate__expression__statement}
-            expression_config.getConfigParameterList<std::string>("statement"))
-        {
-            expression_statements.push_back(expression_statement);
-        }
+            expression_config.getConfigParameterList<std::string>("statement");
+
+        std::vector<std::string> expression_statements;
+        expression_statements.reserve(statements.size());
+        std::copy(begin(statements),
+                  end(statements),
+                  back_inserter(expression_statements));
 
         reaction_rates.emplace_back(std::move(kinetic_reactant),
                                     std::move(expression_statements));