diff --git a/src/dune-microstructure.cc b/src/dune-microstructure.cc
index 844d03711f0600acaf04af08251a6b75de516156..7fa988ff6d90f309a6df913a84dde22b49d02d8f 100644
--- a/src/dune-microstructure.cc
+++ b/src/dune-microstructure.cc
@@ -1687,8 +1687,9 @@ int main(int argc, char *argv[])
   // 3 : QR 
   ///////////////////////////////////
   unsigned int Solvertype = parameterSet.get<unsigned int>("Solvertype", 1);
-  
-  
+  bool write_corrector_phi1 = parameterSet.get<bool>("write_corrector_phi1", true);
+  bool write_corrector_phi2 = parameterSet.get<bool>("write_corrector_phi2", true);
+  bool write_corrector_phi3 = parameterSet.get<bool>("write_corrector_phi3", true);
   
   ///////////////////////////////////
   // Generate the grid
@@ -1999,21 +2000,18 @@ int main(int argc, char *argv[])
 
 
 
-  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+  ////////////////////////////////////////////////////
   // Compute solution
-  ////////////////////////////
+  ////////////////////////////////////////////////////
   VectorCT x_1 = load_alpha1;
   VectorCT x_2 = load_alpha2;
   VectorCT x_3 = load_alpha3;
   
-  
   auto load_alpha1BS = load_alpha1;
   
 //   printvector(std::cout, load_alpha1, "load_alpha1 before SOLVER", "--" );
 //   printvector(std::cout, load_alpha2, "load_alpha2 before SOLVER", "--" );
-  
-  ////////////////////////////////////////////////////////////////////////////////////
-  
+    
   if (Solvertype == 1)  // CG - SOLVER
   {
 
@@ -2040,10 +2038,7 @@ int main(int argc, char *argv[])
     std::cout << "solve linear system for x_3.\n";
     solver.apply(x_3, load_alpha3, statistics);
   }
-  
-  
   ////////////////////////////////////////////////////////////////////////////////////
- 
   
   else if (Solvertype ==2)  // GMRES - SOLVER
   {
@@ -2074,7 +2069,6 @@ int main(int argc, char *argv[])
     solver.apply(x_3, load_alpha3, statistics);
   }
   ////////////////////////////////////////////////////////////////////////////////////
-  
   else if ( Solvertype == 3)// QR - SOLVER
   {
 
@@ -2092,71 +2086,9 @@ int main(int argc, char *argv[])
   }
 //      printvector(std::cout, load_alpha1BS, "load_alpha1 before SOLVER", "--" );
 //     printvector(std::cout, load_alpha1, "load_alpha1 AFTER SOLVER", "--" );
-  
-  
-  
-
     std::cout << "---------load_alpha2 AFTER SOLVER: -------------" << std::endl;
 //     printvector(std::cout, load_alpha2, "load_alpha2 AFTER SOLVER", "--" );
-  
-  
-  
-    ////////////////////////////////////////////////////////////////////////////////////
-            
-            
-
-		// Write solutions in logs     // TODO --------------------------------------
-// 		if (parameterSet.get<int>("write_solutions_corrector_problems") == 1){
-// 		    log << "\nSolution of Corrector problems:\n";
-// 
-// 		    auto sizeComp = x_a.size()/nCompo;
-// 		    std::vector<VectorRT> x_a_vec(sizeComp);
-// 		    std::vector<VectorRT> x_K1_vec(sizeComp);
-// 		    std::vector<VectorRT> x_K2_vec(sizeComp);
-// 		    std::vector<VectorRT> x_K3_vec(sizeComp);
-// 
-// 	    	for (int i=0; i < x_a_vec.size(); i++){
-// 	    		x_a_vec[i] = VectorRT{x_a[i], x_a[i + sizeComp], x_a[i + 2*sizeComp]};
-// 	    		x_K1_vec[i] = VectorRT{x_K1[i], x_K1[i + sizeComp], x_K1[i + 2*sizeComp]};
-// 	    		x_K2_vec[i] = VectorRT{x_K2[i], x_K2[i + sizeComp], x_K2[i + 2*sizeComp]};
-// 	    		x_K3_vec[i] = VectorRT{x_K3[i], x_K3[i + sizeComp], x_K3[i + 2*sizeComp]};
-// 	    	}
-// 
-// 	    	log << "\nxa:\n";
-// 		    for (int i=0; i < x_a_vec.size(); i++)
-// 		      log << i << ": " << x_a_vec[i] << std::endl;
-// 
-// 		    log << "\nxK1:\n";
-// 		    for (int i=0; i < x_K1_vec.size(); i++)
-// 		      log << i << ": " << x_K1_vec[i] << std::endl;
-// 
-// 		    log << "\nxK2:\n";
-// 		    for (int i=0; i < x_K2_vec.size(); i++)
-// 		      log << i << ": " << x_K2_vec[i] << std::endl;
-// 
-// 		    log << "\nxK3:\n";
-// 		    for (int i=0; i < x_K3_vec.size(); i++)
-// 		      log << i << ": " << x_K3_vec[i] << std::endl;
-// 
-// 	    	/*
-// 		    log << "\nxa:\n";
-// 		    for (int i=0; i < x_a.size(); i++)
-// 		      log << i << " " << x_a[i] << std::endl;
-// 
-// 		    log << "\nxK1:\n";
-// 		    for (int i=0; i < x_K1.size(); i++)
-// 		      log << i << " " << x_K1[i] << std::endl;
-// 
-// 		    log << "\nxK2:\n";
-// 		    for (int i=0; i < x_K2.size(); i++)
-// 		      log << i << " " << x_K2[i] << std::endl;
-// 
-// 		    log << "\nxK3:\n";
-// 		    for (int i=0; i < x_K3.size(); i++)
-// 		      log << i << " " << x_K3[i] << std::endl;
-// 		    */
-// 		}
-
+        
     
     
 
@@ -2293,12 +2225,31 @@ int main(int argc, char *argv[])
 //   printvector(std::cout, phi_2, "Coefficients Corrector-Phi_2", "--");  
 //   printvector(std::cout, phi_3, "Coefficients Corrector-Phi_3", "--");  
 
-
-
+  /////////////////////////////////////////////////////////
+  // Write Solution in Logs
+  /////////////////////////////////////////////////////////        
+  log << "\nSolution of Corrector problems:\n";
+  if(write_corrector_phi1)
+  {
+     log << "\n Corrector_phi1:\n"; 
+     log << x_1 << std::endl;
+  }
+  if(write_corrector_phi2)
+  {
+     log << "-----------------------------------------------------";
+     log << "\n Corrector_phi2:\n"; 
+     log << x_2 << std::endl;
+  }
+  if(write_corrector_phi3)
+  {
+     log << "-----------------------------------------------------";
+     log << "\n Corrector_phi3:\n"; 
+     log << x_3 << std::endl;
+  }
 
   ////////////////////////////////////////////////////////////////////////////////
   // REMAKE Corrector-Functions after substract_integralMean
-
+  ////////////////////////////////////////////////////////////////////////////////
   auto correctorFunction_1New = Functions::makeDiscreteGlobalBasisFunction<SolutionRange>(
     Basis_CE,
     phi_1);
@@ -2338,10 +2289,7 @@ int main(int argc, char *argv[])
   coeffT_3[Basis_CE.size()+1] = m_3[1];
   coeffT_3[Basis_CE.size()+2] = m_3[2];
   
-  
-  
-  
-  
+
   // TEST
 //   for(int i = 0; i<Basis_CE.size()+3 ; i++)
 //   {
@@ -2358,6 +2306,8 @@ int main(int argc, char *argv[])
 //   printvector(std::cout, coeffT_1  , "coeffT_1", "--" );
 //   printvector(std::cout,  x_1 , "x_1", "--" );  
 
+  
+  
   /////////////////////////////////////////////////////////
   // Create Containers for Basis-Matrices, Correctors and Coefficients 
   /////////////////////////////////////////////////////////