diff --git a/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp b/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp
index 54bff0969f1ec1b0258e849c742eaa6a61c0ff8a..4f88a74a957d9da5a94b57e59b36bc82cbae87c8 100644
--- a/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp
+++ b/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.cpp
@@ -1,7 +1,6 @@
 #include "L2NormTest.h"
 
 #include "Utilities/ColorConsoleOutput/ColorConsoleOutput.h"
-#include "Utilities\PostProcessingResults\PostProcessingResults.h"
 #include "Utilities\Results\SimulationResults\SimulationResults.h"
 
 #include "Tests\L2NormTest\PostProcessingStrategy\PostProcessingStrategyL2NormTest.h"
@@ -19,7 +18,7 @@ void L2NormTest::update()
 	TestImp::update();
 }
 
-void L2NormTest::addSimulation(std::shared_ptr<TestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr< L2NormPostProcessingStrategy> postProStrategy)
+void L2NormTest::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormPostProcessingStrategy> postProStrategy)
 {
 	TestImp::addSimulation(sim, simInfo, postProStrategy);
 	l2NormPostProStrategies.push_back(postProStrategy);
diff --git a/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h b/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h
index 5486b4de53ab6a80ffcc2ababebc8c39471cd395..1bc50039013958a18721c4c0f09d31e0e109018d 100644
--- a/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h
+++ b/targets/tests/NumericalTests/Tests/L2NormTest/L2NormTest.h
@@ -14,17 +14,17 @@ struct L2NormTestParameterStruct;
 class L2NormTest : public TestImp
 {
 public:
-	static std::shared_ptr<L2NormTest> getNewInstance(std::shared_ptr< ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate);
+	static std::shared_ptr<L2NormTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate);
 
 	void update();
-	void addSimulation(std::shared_ptr< TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< L2NormPostProcessingStrategy> postProStrategy);
+	void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormPostProcessingStrategy> postProStrategy);
 	void evaluate();
 	std::string getLogFileOutput();
 	std::vector< bool> getPassedTests();
 	void makeConsoleOutput();
 
 private:
-	L2NormTest(std::shared_ptr< ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate);
+	L2NormTest(std::shared_ptr<ColorConsoleOutput> colorOutput, std::shared_ptr<L2NormTestParameterStruct> testParameter, std::string dataToCalculate);
 
 	unsigned int basicTimeStep, divergentTimeStep;
 	double resultBasicTimestep, resultDivergentTimeStep;
@@ -33,6 +33,6 @@ private:
 	double maxL2NormDiff;
 	bool testPassed;
 
-	std::vector<std::shared_ptr< L2NormPostProcessingStrategy>> l2NormPostProStrategies;
+	std::vector<std::shared_ptr<L2NormPostProcessingStrategy> > l2NormPostProStrategies;
 };
 #endif 
\ No newline at end of file
diff --git a/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp b/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp
index 2eec26999d484887aa68a4bb5a29d1e6e110f953..a96d57dbe27235ab2594ff522a9a8d595379ebf2 100644
--- a/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp
+++ b/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.cpp
@@ -83,7 +83,7 @@ void L2NormTestBetweenKernels::makeConsoleOutput()
 	colorOutput->makeL2NormBetweenKernelsTestOutput(testPassed, basicSimInfo, divergentSimInfo, dataToCalculate, timeStep, basicL2Result, divergentL2Result, resultL2ToBasicKernel);
 }
 
-void L2NormTestBetweenKernels::setBasicSimulation(std::shared_ptr<TestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy)
+void L2NormTestBetweenKernels::setBasicSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy)
 {
 	TestImp::addSimulation(sim, simInfo, postProcessingStrategy);
 	this->basicSim = sim;
@@ -92,7 +92,7 @@ void L2NormTestBetweenKernels::setBasicSimulation(std::shared_ptr<TestSimulation
 	this->basicSimResults = basicPostProcessingStrategy->getSimulationResult();
 }
 
-void L2NormTestBetweenKernels::setDivergentKernelSimulation(std::shared_ptr<TestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy)
+void L2NormTestBetweenKernels::setDivergentKernelSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy)
 {
 	TestImp::addSimulation(sim, simInfo, postProcessingStrategy);
 	this->divergentSim = sim;
diff --git a/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h b/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h
index 4711f3bb4dac3e50f907c7ea927f2975d884b3a2..5c2640da0bf300dc66dedba059ac634b4654d031 100644
--- a/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h
+++ b/targets/tests/NumericalTests/Tests/L2NormTestBetweenKernels/L2NormTestBetweenKernels.h
@@ -22,8 +22,8 @@ public:
 	std::vector< bool> getPassedTests();
 	void makeConsoleOutput();
 
-	void setBasicSimulation(std::shared_ptr< TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy);
-	void setDivergentKernelSimulation(std::shared_ptr< TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy);
+	void setBasicSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy);
+	void setDivergentKernelSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> postProcessingStrategy);
 
 private:
 	L2NormTestBetweenKernels(std::shared_ptr< ColorConsoleOutput> colorOutput, std::string dataToCalculate, unsigned int timeStep);
@@ -33,19 +33,19 @@ private:
 	std::string dataToCalculate;
 	bool testPassed;
 
-	std::shared_ptr< TestSimulation> basicSim;
-	std::shared_ptr< SimulationInfo> basicSimInfo;
-	std::shared_ptr< SimulationResults> basicSimResults;
-	std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> basicPostProcessingStrategy;
+	std::shared_ptr<NumericalTestSimulation> basicSim;
+	std::shared_ptr<SimulationInfo> basicSimInfo;
+	std::shared_ptr<SimulationResults> basicSimResults;
+	std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> basicPostProcessingStrategy;
 	double basicL2Result;
 
-	std::shared_ptr< TestSimulation> divergentSim;
-	std::shared_ptr< SimulationInfo> divergentSimInfo;
-	std::shared_ptr< SimulationResults> divergentSimResults;
-	std::shared_ptr< L2NormBetweenKernelPostProcessingStrategy> divergentPostProcessingStrategy;
+	std::shared_ptr<NumericalTestSimulation> divergentSim;
+	std::shared_ptr<SimulationInfo> divergentSimInfo;
+	std::shared_ptr<SimulationResults> divergentSimResults;
+	std::shared_ptr<L2NormBetweenKernelPostProcessingStrategy> divergentPostProcessingStrategy;
 	double divergentL2Result;
 	
-	std::shared_ptr< L2NormCalculator> l2Normcalculator;
+	std::shared_ptr<L2NormCalculator> l2Normcalculator;
 
 	double resultL2ToBasicKernel;
 };
diff --git a/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.cpp b/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.cpp
index 5130f1841ef1b9eb383ed04a5863c2dfd692bdd2..efc7160cf336b1651585facd987a8f943893823c 100644
--- a/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.cpp
+++ b/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.cpp
@@ -45,7 +45,7 @@ void PhiAndNuTest::update()
 	TestImp::update();
 }
 
-void PhiAndNuTest::addSimulation(std::shared_ptr<TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< PhiAndNuTestPostProcessingStrategy> postProStrategy)
+void PhiAndNuTest::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PhiAndNuTestPostProcessingStrategy> postProStrategy)
 {
 	TestImp::addSimulation(sim, simInfo, postProStrategy);
 	phiAndNuPostProStrategies.push_back(postProStrategy);
diff --git a/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.h b/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.h
index bd1bf9e19fe950742a8aa0add80007840198278b..2378020f678e0f7e1144bd9cd85a6e72b6d89fbd 100644
--- a/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.h
+++ b/targets/tests/NumericalTests/Tests/PhiAndNuTest/PhiAndNuTest.h
@@ -14,10 +14,10 @@ struct PhiAndNuTestParameterStruct;
 class PhiAndNuTest : public TestImp 
 {
 public:
-	static std::shared_ptr<PhiAndNuTest> getNewInstance(std::shared_ptr< ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiAndNuTestParameterStruct> testPara, std::string dataToCalculate);
+	static std::shared_ptr<PhiAndNuTest> getNewInstance(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiAndNuTestParameterStruct> testPara, std::string dataToCalculate);
 	
 	void update();
-	void addSimulation(std::shared_ptr< TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< PhiAndNuTestPostProcessingStrategy> postProStrategy);
+	void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PhiAndNuTestPostProcessingStrategy> postProStrategy);
 	void evaluate();
 	std::vector< bool> getPassedTests();
 	void makeConsoleOutput();
@@ -33,10 +33,10 @@ public:
 
 
 private:
-	PhiAndNuTest(std::shared_ptr< ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiAndNuTestParameterStruct> testPara, std::string dataToCalculate);
+	PhiAndNuTest(std::shared_ptr<ColorConsoleOutput> colorOutput, double viscosity, std::shared_ptr<PhiAndNuTestParameterStruct> testPara, std::string dataToCalculate);
 	double calcOrderOfAccuracy(std::vector<double> data);
 	bool checkTestPassed(double orderOfAccuracy);
-	std::vector< double> calcNuDiff(std::vector< double> nu);
+	std::vector<double> calcNuDiff(std::vector< double> nu);
 
 	unsigned int startStepCalculation, endStepCalculation;
 	std::vector<double> lx;
diff --git a/targets/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h b/targets/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h
new file mode 100644
index 0000000000000000000000000000000000000000..e9c9643629a95584caee5a0fa61c5e26d330cd2a
--- /dev/null
+++ b/targets/tests/NumericalTests/Utilities/NumericalTestSimulation/NumericalTestSimulation.h
@@ -0,0 +1,9 @@
+#ifndef NUMERICAL_TEST_SIMULATION_H
+#define NUMERICAL_TEST_SIMULATION_H
+
+class NumericalTestSimulation
+{
+public:
+	virtual bool getSimulationRun() = 0;
+};
+#endif
\ No newline at end of file
diff --git a/targets/tests/NumericalTests/Utilities/NumericalTestSimulation/package.include b/targets/tests/NumericalTests/Utilities/NumericalTestSimulation/package.include
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/targets/tests/NumericalTests/Utilities/Test/TestImp.cpp b/targets/tests/NumericalTests/Utilities/Test/TestImp.cpp
index c40ed92c774702540b242b64c1e034a73b36f052..43146f4031344c7467dfb9f41ce10f3c62a690f4 100644
--- a/targets/tests/NumericalTests/Utilities/Test/TestImp.cpp
+++ b/targets/tests/NumericalTests/Utilities/Test/TestImp.cpp
@@ -1,7 +1,7 @@
 #include "TestImp.h"
 
 #include "Utilities\PostProcessingStrategy\PostProcessingStrategy.h"
-#include "Utilities\TestSimulation\TestSimulation.h"
+#include "Utilities\NumericalTestSimulation\NumericalTestSimulation.h"
 
 void TestImp::update()
 {
@@ -21,7 +21,7 @@ void TestImp::update()
 		evaluate();				
 }
 
-void TestImp::addSimulation(std::shared_ptr<TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr<PostProcessingStrategy> postProStrategy)
+void TestImp::addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr<PostProcessingStrategy> postProStrategy)
 {
 	simulations.push_back(sim);
 	simInfos.push_back(simInfo);
diff --git a/targets/tests/NumericalTests/Utilities/Test/TestImp.h b/targets/tests/NumericalTests/Utilities/Test/TestImp.h
index 80d8f20af5d57f0b1b1d82cd16f6906759e54f84..ed4e0a6e4ef06d1bc22b4882f2692b5c91dc04cc 100644
--- a/targets/tests/NumericalTests/Utilities/Test/TestImp.h
+++ b/targets/tests/NumericalTests/Utilities/Test/TestImp.h
@@ -6,7 +6,7 @@
 #include <vector>
 #include <memory>
 
-class TestSimulation;
+class NumericalTestSimulation;
 class SimulationResults;
 class SimulationInfo;
 class ColorConsoleOutput;
@@ -16,7 +16,7 @@ class TestImp : public Test
 {
 public:
 	void update();
-	void addSimulation(std::shared_ptr< TestSimulation> sim, std::shared_ptr< SimulationInfo> simInfo, std::shared_ptr< PostProcessingStrategy> postProStrategy);
+	void addSimulation(std::shared_ptr<NumericalTestSimulation> sim, std::shared_ptr<SimulationInfo> simInfo, std::shared_ptr<PostProcessingStrategy> postProStrategy);
 
 	virtual void evaluate() = 0;
 	virtual std::vector< bool> getPassedTests() = 0;
@@ -28,11 +28,11 @@ protected:
 	TestImp(std::shared_ptr< ColorConsoleOutput> colorOutput);
 	bool CheckAllSimulationRun();
 
-	std::vector< bool> simulationRun;
-	std::shared_ptr< ColorConsoleOutput> colorOutput;
-	std::vector< std::shared_ptr< TestSimulation>> simulations;
-	std::vector< std::shared_ptr< PostProcessingStrategy>> postProStrategies;
-	std::vector< std::shared_ptr< SimulationInfo>> simInfos;
+	std::vector<std::shared_ptr<NumericalTestSimulation> > simulations;
+	std::vector<std::shared_ptr<PostProcessingStrategy> > postProStrategies;
+	std::vector<std::shared_ptr<SimulationInfo> > simInfos;
+	std::vector<bool> simulationRun;
+	std::shared_ptr<ColorConsoleOutput> colorOutput;
 
 	std::string kernelName;
 	std::string simulationName;
diff --git a/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h b/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h
index bc6262afced3985bbcdea1e18dd96f7aefa94a40..dad280c102f41d9b5435a254ebedf3de45ebc1ac 100644
--- a/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h
+++ b/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulation.h
@@ -6,7 +6,6 @@
 #include <memory>
 #include <string>
 
-class AnalyticalResults;
 class InitialCondition;
 class DataWriter;
 class SimulationParameter;
@@ -18,18 +17,10 @@ class Parameter;
 class TestSimulation : public NumericalTestSuite
 {
 public:
-	//beachte Interface Segregation
-	//TimeStopper
-
 	virtual std::shared_ptr<SimulationParameter> getSimulationParameter() = 0;
 	virtual std::shared_ptr<DataWriter> getDataWriter() = 0;
 	virtual std::shared_ptr<InitialCondition> getInitialCondition() = 0;
 	virtual std::shared_ptr<TimeTracking> getTimeTracking() = 0;
 	virtual void setParameter(std::shared_ptr<Parameter> para) = 0;
-
-	virtual bool getSimulationRun() = 0;
-
-	virtual void makeSimulationHeadOutput() = 0;
-	virtual void startPostProcessing() = 0;
 };
 #endif
\ No newline at end of file
diff --git a/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulationImp.h b/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulationImp.h
index 9038c7a0688506086b76be0409407947edd74cec..4b97004c61ecd7ea3e5cd78fe7ad4bc30ace85a7 100644
--- a/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulationImp.h
+++ b/targets/tests/NumericalTests/Utilities/TestSimulation/TestSimulationImp.h
@@ -2,6 +2,7 @@
 #define TEST_SIMULATION_IMP_H
 
 #include "TestSimulation.h"
+#include "Utilities\NumericalTestSimulation\NumericalTestSimulation.h"
 
 #include <vector>
 #include <time.h>
@@ -16,7 +17,7 @@ class TimeTracking;
 
 struct TestSimulationDataStruct;
 
-class TestSimulationImp : public TestSimulation
+class TestSimulationImp : public TestSimulation, public NumericalTestSimulation
 {
 public:
 	static std::shared_ptr< TestSimulationImp> getNewInsance(std::shared_ptr<TestSimulationDataStruct> testSimData, std::shared_ptr<SimulationResults> simResult, std::shared_ptr<TimeTracking> timeTracking, std::shared_ptr<ToVectorWriter> toVectorWriter, std::shared_ptr<AnalyticalResults2DToVTKWriter> anaResultWriter, std::shared_ptr<ColorConsoleOutput> colorOutput);