diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp
index 8ea8b58598274106815e617327ac282b7a629ddc..53c7707b6be07f5115f0585ad896402b453c4ddc 100644
--- a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp
+++ b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp
@@ -165,13 +165,4 @@ void ADKernelManager::printAD(SPtr<CudaMemoryManager> cudaMemoryManager)
     cudaMemoryManager->cudaCopyConcentrationDeviceToHost();
 }
 
-SPtr<ADKernelManager> ADKernelManager::make(SPtr<Parameter> parameter){
-    return SPtr<ADKernelManager>(new ADKernelManager(parameter));
-}
-
 ADKernelManager::ADKernelManager(SPtr<Parameter> parameter): para(parameter){}
-
-ADKernelManager::ADKernelManager(const ADKernelManager&)
-{
-
-}
\ No newline at end of file
diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h
index 3c781b29781b59cd26eb1d1f720739d2849490b7..d48b2ff0631efe52369712bfceb5168b115f762d 100644
--- a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h
+++ b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h
@@ -33,8 +33,8 @@
 #ifndef ADVECTION_DIFFUSION_H
 #define ADVECTION_DIFFUSION_H
 
-#include "PointerDefinitions.h"
 #include "Core/DataTypes.h"
+#include "PointerDefinitions.h"
 #include "VirtualFluids_GPU_export.h"
 
 //! \brief Class forwarding for Parameter, DataWriter and CudaMemoryManager
@@ -43,44 +43,36 @@ class CudaMemoryManager;
 
 //! \class ADKernelManager
 //! \brief manage the advection diffusion kernel calls
-class VIRTUALFLUIDS_GPU_EXPORT ADKernelManager{
+class VIRTUALFLUIDS_GPU_EXPORT ADKernelManager
+{
 
 public:
+    //! Class constructor
+    //! \param parameter shared pointer to instance of class Parameter
+    ADKernelManager(SPtr<Parameter> parameter);
+    
+    //! \brief initialize the Advection Diffusion distributions
+    //! \param para instance of class Parameter
+    void initAD();
 
-//! \brief makes an object of ADKernelManager
-//! \param para shared pointer to instance of class Parameter
-static SPtr<ADKernelManager> make(SPtr<Parameter> parameter);
-
-//! \brief initialize the Advection Diffusion distributions
-//! \param para instance of class Parameter
-void initAD();
-
-//! \brief set initial concentration values at all nodes
-//! \param para instance of class Parameter
-//! \param cudaManager instance of class CudaMemoryManager
-void setInitialNodeValuesAD(SPtr<CudaMemoryManager> cudaMemoryManager);
-
-//! \brief calculate the state of the next time step of the Advection Diffusion distributions
-//! \param para instance of class Parameter
-void runADcollisionKernel();
+    //! \brief set initial concentration values at all nodes
+    //! \param para instance of class Parameter
+    //! \param cudaManager instance of class CudaMemoryManager
+    void setInitialNodeValuesAD(SPtr<CudaMemoryManager> cudaMemoryManager);
 
-//! \brief calls the device function of the slip boundary condition for advection diffusion
-void runADslipBCKernel();
+    //! \brief calculate the state of the next time step of the Advection Diffusion distributions
+    //! \param para instance of class Parameter
+    void runADcollisionKernel();
 
-//! \brief copy the concentration from device to host and writes VTK file with concentration
-//! \param para instance of class Parameter
-//! \param cudaManager instance of class CudaMemoryManager
-void printAD(SPtr<CudaMemoryManager> cudaMemoryManager);
+    //! \brief calls the device function of the slip boundary condition for advection diffusion
+    void runADslipBCKernel();
 
+    //! \brief copy the concentration from device to host and writes VTK file with concentration
+    //! \param para instance of class Parameter
+    //! \param cudaManager instance of class CudaMemoryManager
+    void printAD(SPtr<CudaMemoryManager> cudaMemoryManager);
 
 private:
-    //! Class constructor
-    //! \param parameter shared pointer to instance of class Parameter
-    ADKernelManager(SPtr<Parameter> parameter);
-    //! Class copy constructor
-    //! \param ADKernelManager is a reference to ADKernelManager object
-    ADKernelManager(const ADKernelManager&);
-
     //! \property para is a shared pointer to an object of Parameter
     SPtr<Parameter> para;
 };
diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h
index 68b9fa5f0de861d4f7437954f1a985a79c8bc913..a519d40cf06b34d4d7ee8f477f6dccd8e77bb049 100644
--- a/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h
+++ b/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h
@@ -26,7 +26,7 @@
 //  You should have received a copy of the GNU General Public License along
 //  with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
 //
-//! \file LBKernelManager.h
+//! \file BCKernelManager.h
 //! \ingroup KernelManager
 //! \author Martin Schoenherr
 //=======================================================================================
@@ -49,8 +49,8 @@ struct ParameterStruct;
 using boundaryCondition = std::function<void(ParameterStruct *, QforBoundaryConditions *)>;
 using boundaryConditionPara = std::function<void(Parameter *, QforBoundaryConditions *, const int level)>;
 
-//! \class LBKernelManager
-//! \brief manage the cuda kernel calls
+//! \class BCKernelManager
+//! \brief manage the cuda kernel calls to boundary conditions
 class VIRTUALFLUIDS_GPU_EXPORT BCKernelManager
 {
 public:
@@ -64,10 +64,10 @@ public:
     //! \brief calls the device function of the geometry boundary condition (post-collision)
     void runGeoBCKernelPost(const int level) const;
 
-    //! \brief calls the device function of the slip boundary condition
+    //! \brief calls the device function of the slip boundary condition (post-collision)
     void runSlipBCKernelPost(const int level) const;
 
-    //! \brief calls the device function of the no-slip boundary condition
+    //! \brief calls the device function of the no-slip boundary condition (post-collision)
     void runNoSlipBCKernelPost(const int level) const;
 
     //! \brief calls the device function of the pressure boundary condition (pre-collision)
diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp
index 6ed36f4eb6ed3f333093db1276f840dee7c14f0c..1d94c73f5367aca4f9300a753a115c5717fcd991 100644
--- a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp
+++ b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp
@@ -104,27 +104,7 @@ void LBKernelManager::calculateMacroscopicValues(SPtr<Parameter> para)
     }
 }
 
+LBKernelManager::LBKernelManager(SPtr<Parameter> parameter): parameter(parameter)
+{
+}
 
-
-
-
-
-
-
-
-
-
-// SPtr<LBKernelManager> LBKernelManager::make(SPtr<Parameter> parameter)
-// {
-//     return SPtr<LBKernelManager>(new LBKernelManager(parameter));
-// }
-
-// LBKernelManager::LBKernelManager(SPtr<Parameter> parameter)
-// {
-//     this->parameter = parameter;
-// }
-
-// LBKernelManager::LBKernelManager(const LBKernelManager&)
-// {
-
-// }
diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h
index 29ccf030601f27b255ef56aeed87f965a28362e4..d023457fe79bec456ce9c53e402bca9c06406df2 100644
--- a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h
+++ b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h
@@ -45,10 +45,10 @@ class Parameter;
 class VIRTUALFLUIDS_GPU_EXPORT LBKernelManager
 {
 public:
-    //! \brief makes an object of LBKernelManager
-    //! \param para shared pointer to instance of class Parameter
-    static SPtr<LBKernelManager> make(std::shared_ptr<Parameter> parameter);
-    
+    //! Class constructor
+    //! \param parameter shared pointer to instance of class Parameter
+    LBKernelManager(SPtr<Parameter> parameter);
+
     //! \brief calls the device function of the lattice Boltzmann kernel
     void runLBMKernel(SPtr<Parameter> para);
 
@@ -56,12 +56,6 @@ public:
     void calculateMacroscopicValues(SPtr<Parameter> para);
 
 private:
-    //! Class constructor
-    //! \param parameter shared pointer to instance of class Parameter
-    LBKernelManager(SPtr<Parameter> parameter);
-    //! Class copy constructor
-    //! \param LBKernelManager is a reference to LBKernelManager object
-    LBKernelManager(const LBKernelManager&);
 
     //! \property para is a shared pointer to an object of Parameter
     SPtr<Parameter> parameter;
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
index f688e933d7401e0b774b56a99bd71c3a4b1a5c8b..d9d8f0e5b9a28f516580c97b0a94d0e1bc769cda 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp
@@ -60,9 +60,9 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, SPt
     this->gridProvider      = gridProvider;
     this->cudaMemoryManager = cudaMemoryManager;
     this->para              = para;
-    this->cudaKernelManager = LBKernelManager::make(para);
-    this->adKernelManager   = ADKernelManager::make(para);
-    this->bcKernelManager = std::make_shared<BCKernelManager>(para, bcFactory);
+    this->lbKernelManager   = std::make_shared<LBKernelManager>(para);
+    this->adKernelManager   = std::make_shared<ADKernelManager>(para);
+    this->bcKernelManager   = std::make_shared<BCKernelManager>(para, bcFactory);
 
 
     para->initParameter();
@@ -112,7 +112,7 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, SPt
     //////////////////////////////////////////////////////////////////////////
     // print initialized grid
     output << "Print files Init...";
-    dataWriter->writeInit(para, cudaMemoryManager, cudaKernelManager, adKernelManager.get());
+    dataWriter->writeInit(para, cudaMemoryManager, lbKernelManager, adKernelManager.get());
     output << "done.\n";
 
     //////////////////////////////////////////////////////////////////////////
@@ -143,7 +143,7 @@ void Simulation::run()
 
         ////////////////////////////////////////////////////////////////////////////////
         // LBM Kernel
-        cudaKernelManager->runLBMKernel(para);
+        lbKernelManager->runLBMKernel(para);
 
         ////////////////////////////////////////////////////////////////////////////////
         // velocity boundary condition
@@ -171,7 +171,7 @@ void Simulation::run()
             // IO
             if (para->getPrintFiles()) {
                 output << "File IO for t=" << timestep << "...";
-                dataWriter->writeTimestep(para, cudaMemoryManager, cudaKernelManager, adKernelManager.get(), timestep);
+                dataWriter->writeTimestep(para, cudaMemoryManager, lbKernelManager, adKernelManager.get(), timestep);
                 output << "done.\n";
             }
             timer->start();
diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
index 1130b5da0afb543e77e559ebd60260844cd5dd84..ca61f982875d8e4c8d4c50c2dd3870b19d266fd1 100644
--- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
+++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h
@@ -74,10 +74,10 @@ protected:
     //! \property cudaMemoryManager is a shared pointer to an object of CudaMemoryManager
     SPtr<CudaMemoryManager> cudaMemoryManager;
     //! \property cudaKernelManager is a shared pointer to an object of LBKernelManager
-    SPtr<LBKernelManager> cudaKernelManager;
+    SPtr<LBKernelManager> lbKernelManager;
     //! \property adKernelManager is a shared pointer to an object of ADKernelManager
-    std::shared_ptr<ADKernelManager> adKernelManager;
+    SPtr<ADKernelManager> adKernelManager;
     //! \property bcKernelManager is a shared pointer to an object of BCKernelManager
-    std::shared_ptr<BCKernelManager> bcKernelManager;
+    SPtr<BCKernelManager> bcKernelManager;
 };
 #endif