diff --git a/MaterialLib/MPL/CreateProperty.cpp b/MaterialLib/MPL/CreateProperty.cpp
index ec6edcbdb2537b72fbc7fcb77a425548282b64b8..955c9573188cf581b0cb5ead40998a5d1c46ed81 100644
--- a/MaterialLib/MPL/CreateProperty.cpp
+++ b/MaterialLib/MPL/CreateProperty.cpp
@@ -48,34 +48,7 @@ std::unique_ptr<MaterialPropertyLib::Property> createProperty(
 
     if (property_type == "Exponential")
     {
-        auto const reference_value =
-            //! \ogs_file_param{properties__property__ExponentialProperty__reference_value}
-            config.getConfigParameter<double>("reference_value");
-
-        auto const& exponent_data_config =
-            //! \ogs_file_param{properties__property__ExponentialProperty__exponent}
-            config.getConfigSubtree("exponent");
-
-        auto const& variable_name =
-            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__variable_name}
-            exponent_data_config.getConfigParameter<std::string>(
-                "variable_name");
-        auto const reference_condition =
-            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__reference_condition}
-            exponent_data_config.getConfigParameter<double>(
-                "reference_condition");
-        auto const factor =
-            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__factor}
-            exponent_data_config.getConfigParameter<double>("factor");
-
-        MaterialPropertyLib::Variable exp_data_type =
-            MaterialPropertyLib::convertStringToVariable(variable_name);
-
-        MaterialPropertyLib::ExponentData const exp_data{
-            exp_data_type, reference_condition, factor};
-
-        return std::make_unique<MaterialPropertyLib::ExponentialProperty>(
-            reference_value, exp_data);
+        return createExponentialProperty(config);
     }
 
     if (property_type == "Parameter")
diff --git a/MaterialLib/MPL/Properties/CreateExponentialProperty.cpp b/MaterialLib/MPL/Properties/CreateExponentialProperty.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..262bf0b702b73f9ca5736dae6be3ebcfb40e1f7b
--- /dev/null
+++ b/MaterialLib/MPL/Properties/CreateExponentialProperty.cpp
@@ -0,0 +1,54 @@
+/**
+ * \file
+ * \author Norbert Grunwald
+ * \date   Sep 10, 2019
+ *
+ * \copyright
+ * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ */
+
+#include "BaseLib/ConfigTree.h"
+#include "ExponentialProperty.h"
+
+namespace MaterialPropertyLib
+{
+std::unique_ptr<ExponentialProperty> createExponentialProperty(
+    BaseLib::ConfigTree const& config)
+{
+    config.checkConfigParameter("type", "Exponential");
+    DBUG("Create Exponential property");
+        auto const reference_value =
+            //! \ogs_file_param{properties__property__ExponentialProperty__reference_value}
+            config.getConfigParameter<double>("reference_value");
+
+        auto const& exponent_data_config =
+            //! \ogs_file_param{properties__property__ExponentialProperty__exponent}
+            config.getConfigSubtree("exponent");
+
+        auto const& variable_name =
+            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__variable_name}
+            exponent_data_config.getConfigParameter<std::string>(
+                "variable_name");
+        auto const reference_condition =
+            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__reference_condition}
+            exponent_data_config.getConfigParameter<double>(
+                "reference_condition");
+        auto const factor =
+            //! \ogs_file_param{properties__property__ExponentialProperty__exponent__factor}
+            exponent_data_config.getConfigParameter<double>("factor");
+
+        MaterialPropertyLib::Variable exp_data_type =
+            MaterialPropertyLib::convertStringToVariable(variable_name);
+
+        MaterialPropertyLib::ExponentData const exp_data{
+            exp_data_type, reference_condition, factor};
+
+        return std::make_unique<MaterialPropertyLib::ExponentialProperty>(
+            reference_value, exp_data);
+
+}
+}  // namespace MaterialPropertyLib
\ No newline at end of file
diff --git a/MaterialLib/MPL/Properties/CreateExponentialProperty.h b/MaterialLib/MPL/Properties/CreateExponentialProperty.h
new file mode 100644
index 0000000000000000000000000000000000000000..78ddf7f5dd2d04f1b78e875c6f793cf4b6bd660e
--- /dev/null
+++ b/MaterialLib/MPL/Properties/CreateExponentialProperty.h
@@ -0,0 +1,30 @@
+/**
+ * \file
+ * \author Norbert Grunwald
+ * \date   Sep 10, 2019
+ *
+ * \copyright
+ * Copyright (c) 2012-2019, OpenGeoSys Community (http://www.opengeosys.org)
+ *            Distributed under a Modified BSD License.
+ *              See accompanying file LICENSE.txt or
+ *              http://www.opengeosys.org/project/license
+ *
+ */
+
+#pragma once
+
+namespace BaseLib
+{
+class ConfigTree;
+}
+
+namespace MaterialPropertyLib
+{
+class ExponentialProperty;
+}
+
+namespace MaterialPropertyLib
+{
+std::unique_ptr<ExponentialProperty> createExponentialProperty(
+    BaseLib::ConfigTree const& config);
+}  // namespace MaterialPropertyLib
\ No newline at end of file
diff --git a/MaterialLib/MPL/Properties/CreateProperties.h b/MaterialLib/MPL/Properties/CreateProperties.h
index 400ceb1eaf734c65947dbb1aa96bc78dd353e8e1..51952c4bafd88f9a9c537d92acaf55a804d25f76 100644
--- a/MaterialLib/MPL/Properties/CreateProperties.h
+++ b/MaterialLib/MPL/Properties/CreateProperties.h
@@ -13,5 +13,6 @@
 #pragma once
 
 #include "CreateConstant.h"
+#include "CreateExponentialProperty.h"
 #include "CreateIdealGasLaw.h"
 #include "CreateLinearProperty.h"