diff --git a/src/language/modules/SchemeModule.cpp b/src/language/modules/SchemeModule.cpp
index 4e0f8f73788bd46320e03ae6ad8a9810829efd0e..fc9eae90669693c784f204744e93f0d61c3be119 100644
--- a/src/language/modules/SchemeModule.cpp
+++ b/src/language/modules/SchemeModule.cpp
@@ -72,9 +72,9 @@ struct GlaceScheme
 
   GlaceScheme(const IMesh& mesh,
               const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>& bc_descriptor_list,
-              FunctionSymbolId rho_id,
-              FunctionSymbolId u_id,
-              FunctionSymbolId p_id)
+              const FunctionSymbolId& rho_id,
+              const FunctionSymbolId& u_id,
+              const FunctionSymbolId& p_id)
     : m_mesh{dynamic_cast<const MeshType&>(mesh)}
   {
     MeshDataType mesh_data(m_mesh);
@@ -254,7 +254,8 @@ SchemeModule::SchemeModule()
                                 [](std::shared_ptr<const IMesh> p_mesh,
                                    const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
                                      bc_descriptor_list,
-                                   FunctionSymbolId rho_id, FunctionSymbolId u_id, FunctionSymbolId p_id) -> void {
+                                   const FunctionSymbolId& rho_id, const FunctionSymbolId& u_id,
+                                   const FunctionSymbolId& p_id) -> void {
                                   switch (p_mesh->dimension()) {
                                   case 1: {
                                     GlaceScheme<1>{*p_mesh, bc_descriptor_list, rho_id, u_id, p_id};