diff --git a/ProcessLib/HT/CreateHTProcess.cpp b/ProcessLib/HT/CreateHTProcess.cpp
index 0eb565cd3bb62a0f0b8328ea79f697adc5b64dd7..d62f564733d341a4225b3a8302a60a98f145583b 100644
--- a/ProcessLib/HT/CreateHTProcess.cpp
+++ b/ProcessLib/HT/CreateHTProcess.cpp
@@ -139,14 +139,10 @@ std::unique_ptr<Process> createHTProcess(
     auto media_map =
         MaterialPropertyLib::createMaterialSpatialDistributionMap(media, mesh);
 
-    std::unique_ptr<HTMaterialProperties> material_properties =
-        std::make_unique<HTMaterialProperties>(
-            std::move(media_map),
-            has_fluid_thermal_expansion,
-            *solid_thermal_expansion,
-            *biot_constant,
-            specific_body_force,
-            has_gravity);
+    HTMaterialProperties material_properties{
+        std::move(media_map),     has_fluid_thermal_expansion,
+        *solid_thermal_expansion, *biot_constant,
+        specific_body_force,      has_gravity};
 
     SecondaryVariableCollection secondary_variables;
 
diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp
index 9616152224c53d659f96b12d36ab0f4c62a76d03..a9074a8bae53be0499aaec91746619c050531997 100644
--- a/ProcessLib/HT/HTProcess.cpp
+++ b/ProcessLib/HT/HTProcess.cpp
@@ -16,7 +16,6 @@
 #include "ProcessLib/SurfaceFlux/SurfaceFluxData.h"
 #include "ProcessLib/Utils/CreateLocalAssemblers.h"
 
-#include "HTMaterialProperties.h"
 #include "MonolithicHTFEM.h"
 #include "StaggeredHTFEM.h"
 
@@ -32,7 +31,7 @@ HTProcess::HTProcess(
     unsigned const integration_order,
     std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&&
         process_variables,
-    std::unique_ptr<HTMaterialProperties>&& material_properties,
+    HTMaterialProperties&& material_properties,
     SecondaryVariableCollection&& secondary_variables,
     NumLib::NamedFunctionCaller&& named_function_caller,
     bool const use_monolithic_scheme,
@@ -68,14 +67,14 @@ void HTProcess::initializeConcreteProcess(
             mesh.getDimension(), mesh.getElements(), dof_table,
             pv.getShapeFunctionOrder(), _local_assemblers,
             mesh.isAxiallySymmetric(), integration_order,
-            *_material_properties);
+            _material_properties);
     }
     else
     {
         ProcessLib::createLocalAssemblers<StaggeredHTFEM>(
             mesh.getDimension(), mesh.getElements(), dof_table,
             pv.getShapeFunctionOrder(), _local_assemblers,
-            mesh.isAxiallySymmetric(), integration_order, *_material_properties,
+            mesh.isAxiallySymmetric(), integration_order, _material_properties,
             _heat_transport_process_id, _hydraulic_process_id);
     }
 
diff --git a/ProcessLib/HT/HTProcess.h b/ProcessLib/HT/HTProcess.h
index 1d59a7bc4ed9eaaa3887f922c1105d020ad34574..b6dbe34253f9778c28b4b31de51ed98519758ec7 100644
--- a/ProcessLib/HT/HTProcess.h
+++ b/ProcessLib/HT/HTProcess.h
@@ -11,6 +11,7 @@
 
 #include <array>
 
+#include "HTMaterialProperties.h"
 #include "ProcessLib/Process.h"
 
 namespace NumLib
@@ -25,7 +26,6 @@ struct SurfaceFluxData;
 namespace HT
 {
 class HTLocalAssemblerInterface;
-struct HTMaterialProperties;
 
 /**
  * # HT process
@@ -59,7 +59,7 @@ public:
         unsigned const integration_order,
         std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&&
             process_variables,
-        std::unique_ptr<HTMaterialProperties>&& material_properties,
+        HTMaterialProperties&& material_properties,
         SecondaryVariableCollection&& secondary_variables,
         NumLib::NamedFunctionCaller&& named_function_caller,
         bool const use_monolithic_scheme,
@@ -116,7 +116,7 @@ private:
     std::tuple<NumLib::LocalToGlobalIndexMap*, bool>
         getDOFTableForExtrapolatorData() const override;
 
-    const std::unique_ptr<HTMaterialProperties> _material_properties;
+    HTMaterialProperties _material_properties;
 
     std::vector<std::unique_ptr<HTLocalAssemblerInterface>> _local_assemblers;