diff --git a/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp b/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
index 838b2ccd5de9d89626ea8c61bf92592743a7ccba..3662855a6779f2bfffb21d65d290ed63e4cef423 100644
--- a/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case1/DiluteGravityCurrents_Case1.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp b/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
index dcbb47c4b811434f10c6546e2c7b8ad2f829e6ae..9fe76d9fb22768273a4fe1ae67c210c877408d53 100644
--- a/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case2/DiluteGravityCurrents_Case2.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp b/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
index e77d5f6ebc497bb8bd77a65cac6c6219c85ab5cc..7fe830cc5259d2150af8f98227494dc7b4bd2791 100644
--- a/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case3/DiluteGravityCurrents_Case3.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp b/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
index 7427aa9b7887e3645819a692f952f0e8320a81a1..1401507308e001c629d94986bae7faa9f69edd9e 100644
--- a/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case4/DiluteGravityCurrents_Case4.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp b/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
index 9df9da2872112537b905fafc3f7275dfd6cb0430..6263ad530f7494e6054897579308a71c5b3fc214 100644
--- a/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case5/DiluteGravityCurrents_Case5.cpp
@@ -119,8 +119,8 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
-
+            SPtr<Parameter> para =std::make_shared<Parameter>();
+            
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
             const uint timeStepOut = (int)DeltaT;
diff --git a/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp b/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
index f1c8aa5c20d7bf987d0282c6e03b66a1ce3f89e2..64f0343d6657bcd184bb898e8f956c859a930b4f 100644
--- a/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case6/DiluteGravityCurrents_Case6.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp b/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
index d6d4684369c03c90c63c02ae85ddfc2d5d88da89..ac8b6f2309568ba34090f769253bb95a76b247f2 100644
--- a/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case7/DiluteGravityCurrents_Case7.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp b/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
index 09459acd8ca78d37501c68ada334a98a6fc4a525..93aaf9b8d58f71acfd936cf10f4f63a2f7671882 100644
--- a/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
+++ b/apps/gpu/DiluteGravityCurrents_Case8/DiluteGravityCurrents_Case8.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             real DeltaT = (real)2.5 * (real)nx / velocityLB;
 
diff --git a/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp b/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
index 10dfd23bafd08b4b31c153ebd44b527c12aaced6..4cc501260f954a9e57ddc4a47cfa68ede8a50bdd 100644
--- a/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
+++ b/apps/gpu/FlowAroundSphere/FlowAroundSphere.cpp
@@ -46,6 +46,7 @@
 #include "Core/LbmOrGks.h"
 #include "Core/Logger/Logger.h"
 #include "Core/VectorTypes.h"
+#include "config/ConfigurationFile.h"
 #include "PointerDefinitions.h"
 
 //////////////////////////////////////////////////////////////////////////
@@ -123,8 +124,8 @@ int main(int argc, char *argv[])
         // setup simulation parameters
         //////////////////////////////////////////////////////////////////////////
 
-        SPtr<Parameter> para = Parameter::make();
-
+        SPtr<Parameter> para =std::make_shared<Parameter>();
+        
         //////////////////////////////////////////////////////////////////////////
         // compute parameters in lattice units
         //////////////////////////////////////////////////////////////////////////
diff --git a/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp b/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
index 61b528d4983cc6ec6886eafbae9855b664f506cd..836374dfa24492e52a14fb9637a3b49a854b30fe 100644
--- a/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
+++ b/apps/gpu/LidDrivenCavityGPU/LidDrivenCavity.cpp
@@ -142,7 +142,7 @@ int main(int argc, char *argv[])
         //////////////////////////////////////////////////////////////////////////
 
         if (lbmOrGks == LBM) {
-            SPtr<Parameter> para = Parameter::make();
+            SPtr<Parameter> para =std::make_shared<Parameter>();
 
             //////////////////////////////////////////////////////////////////////////
             // compute parameters in lattice units
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
index 10075ed9c775a59f1f602ec2c6edfea757feeb70..1e79d5cf5be4b277ccd1816110dbed72a7884429 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp
@@ -36,11 +36,6 @@
 #include <stdlib.h>
 #include <math.h>
 
-SPtr<Parameter> Parameter::make()
-{
-    return SPtr<Parameter>(new Parameter());
-}
-
 Parameter::Parameter()
 {
     this->setOutputPath("C:/Output/");
@@ -81,16 +76,6 @@ Parameter::Parameter()
     // Advection Diffusion
     this->setIsADcalculationOn(false);
 }
-Parameter::~Parameter()
-{
-}
-Parameter* Parameter::instance = 0;
-Parameter* Parameter::getInstance()
-{
-    if( instance == 0 )
-        instance = new Parameter();
-    return instance;
-}
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //init-method
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index a974b822005fb6e1a526f4acbc98d3b86e06f218..776ba8382d75b63117f13a9613ae4aaaefbb65e3 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -37,6 +37,7 @@
 #include "LBM/LB.h"
 #include "PointerDefinitions.h"
 #include "VirtualFluids_GPU_export.h"
+#include "basics/config/ConfigurationFile.h"
 
 //! \struct ParameterStruct
 //! \brief struct holds and manages the LB-parameter of the simulation that correspond to a certain level
@@ -111,17 +112,18 @@ class VIRTUALFLUIDS_GPU_EXPORT Parameter
 {
 public:
     ////////////////////////////////////////////////////////////////////////////
-    //! \brief generate a new instance of parameter object
-    static SPtr<Parameter> make();
-    //! \brief returns the instance generate a new instance of parameter object
-    static Parameter* getInstance();
+    //! \brief generate a new instance of parameter object, sets some defaults
+    Parameter();
+    
+    ~Parameter() = default;
+
     //! \brief Pointer to instance of ParameterStruct - stored on Host System
     ParameterStruct* getParH();
     //! \brief Pointer to instance of ParameterStruct - stored on Device (GPU)
     ParameterStruct* getParD();
 
     //////////////////////////////////////////////////////////////////////////
-    //! \brief initialization of necessary parameters at startup
+    //! \brief initialization of necessary parameters at simulation startup
     void initParameter();
 
     //////////////////////////////////////////////////////////////////////////
@@ -255,13 +257,7 @@ public:
     void setInitialConditionAD(std::function<void(real, real, real, real &)> initialConditionAD);
     std::function<void(real, real, real, real &)> &getInitialConditionAD();
 
-    //////////////////////////////////////////////////////////////////////////
-    //! Class destructor
-    ~Parameter();
-protected:
 private:
-    //! \brief instance of parameter object 
-    static Parameter* instance;
     //! \brief stencil for the LB simulation, number of node neighbors
     int D3Qxx;
     //! \brief limit of nodes, that can be written to a binary unstructured grid VTK file  
@@ -306,10 +302,6 @@ private:
     ParameterStruct* parametersOnHost;
     //! \brief pointer to LB-parameter struct on device/GPU
     ParameterStruct* parametersOnDevice;
-
-    //! Class default constructor
-    Parameter();
-    //Parameter(const Parameter&);
 };
 
 #endif