diff --git a/src/amdis/AdaptInfo.hpp b/src/amdis/AdaptInfo.hpp
index b573492993edd31f3e9c02f8706621eacab28fb3..812fb24bf2d67fea4d3b2a13fecd525c43cb629d 100644
--- a/src/amdis/AdaptInfo.hpp
+++ b/src/amdis/AdaptInfo.hpp
@@ -3,6 +3,7 @@
 // std c++ headers
 #include <algorithm>
 #include <cmath>
+#include <forward_list>
 #include <limits>
 #include <map>
 #include <string>
diff --git a/src/amdis/Marker.cpp b/src/amdis/Marker.cpp
index 6f94cf2a77759638cbb4692b5ea22ff50c769f39..9584989b291d69a4b5df746e6a655cbd522ed5d3 100644
--- a/src/amdis/Marker.cpp
+++ b/src/amdis/Marker.cpp
@@ -9,7 +9,7 @@ namespace AMDiS {
   using std::pow;
 
   template <class Traits>
-  Marker<Traits>* Marker<Traits>::createMarker(std::string name, int number, const EstType& est, Grid* grid)
+  Marker<Traits>* Marker<Traits>::createMarker(std::string name, std::string component, const EstType& est, Grid* grid)
   {
     int strategy = 0;
     Parameters::get(name + "->strategy", strategy);
@@ -22,19 +22,19 @@ namespace AMDiS {
       break;
     case 1:
       msg("Creating global refinement (GR) marker\n");
-      marker = new GRMarker<Traits>(name, number, est, grid);
+      marker = new GRMarker<Traits>(name, component, est, grid);
       break;
     case 2:
       msg("Creating maximum strategy (MS) marker\n");
-      marker = new MSMarker<Traits>(name, number, est, grid);
+      marker = new MSMarker<Traits>(name, component, est, grid);
       break;
     case 3:
       msg("Creating equidistribution strategy (ES) marker\n");
-      marker = new ESMarker<Traits>(name, number, est, grid);
+      marker = new ESMarker<Traits>(name, component, est, grid);
       break;
     case 4:
       msg("Creating guaranteed error reduction strategy (GERS) marker\n");
-      marker = new GERSMarker<Traits>(name, number, est, grid);
+      marker = new GERSMarker<Traits>(name, component, est, grid);
       break;
     default:
       error_exit("invalid strategy\n");
@@ -50,10 +50,10 @@ namespace AMDiS {
   {
     elMarkRefine = 0;
     elMarkCoarsen = 0;
-    estSum = pow(adaptInfo.getEstSum(number), p);
-    estMax = adaptInfo.getEstMax(number);
-    refineAllowed = adaptInfo.isRefinementAllowed(number);
-    coarsenAllowed = adaptInfo.isCoarseningAllowed(number);
+    estSum = pow(adaptInfo.getEstSum(component), p);
+    estMax = adaptInfo.getEstMax(component);
+    refineAllowed = adaptInfo.isRefinementAllowed(component);
+    coarsenAllowed = adaptInfo.isCoarseningAllowed(component);
   }
 
 
@@ -123,10 +123,10 @@ namespace AMDiS {
     double MSGammaP = pow(MSGamma, this->p);
     double MSGammaCP = pow(MSGammaC, this->p);
 
-    this->markRLimit = MSGammaP * adaptInfo.getEstMax(this->number);
-    this->markCLimit = MSGammaCP * adaptInfo.getEstMax(this->number);
+    this->markRLimit = MSGammaP * adaptInfo.getEstMax(this->component);
+    this->markCLimit = MSGammaCP * adaptInfo.getEstMax(this->component);
 
-    msg("start max_est: ", adaptInfo.getEstMax(this->number), ", mark_limits: ", this->markRLimit, ", " , this->markCLimit, "\n");
+    msg("start max_est: ", adaptInfo.getEstMax(this->component), ", mark_limits: ", this->markRLimit, ", " , this->markCLimit, "\n");
   }
 
 
@@ -137,7 +137,7 @@ namespace AMDiS {
 
     double ESThetaP = pow(ESTheta, this->p);
     double ESThetaCP = pow(ESThetaC, this->p);
-    double epsP = pow(adaptInfo.getSpaceTolerance(this->number), this->p);
+    double epsP = pow(adaptInfo.getSpaceTolerance(this->component), this->p);
 
     int nLeaves = (this->grid->leafGridView()).size(0);
 /*#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
@@ -163,7 +163,7 @@ namespace AMDiS {
     GERSSum = 0.0;
 
     double LTheta = pow(1.0 - GERSThetaStar, this->p);
-    double epsP = pow(adaptInfo.getSpaceTolerance(this->number), this->p);
+    double epsP = pow(adaptInfo.getSpaceTolerance(this->component), this->p);
 
     if (this->estSum < oldErrSum) {
       double improv = this->estSum / oldErrSum;
diff --git a/src/amdis/Marker.hpp b/src/amdis/Marker.hpp
index 5a2a4a964ad7bcff095159ff6f5e81640e7a3c4d..4491b06d1f654baa9fc84f153d21e45ffae3d464 100644
--- a/src/amdis/Marker.hpp
+++ b/src/amdis/Marker.hpp
@@ -32,9 +32,9 @@ namespace AMDiS {
     Marker() {}
 
     /// Constructor.
-    Marker(std::string name_, int number_, const EstType& est_, Grid* grid_)
+    Marker(std::string name_, std::string component_, const EstType& est_, Grid* grid_)
       : name(name_),
-        number(number_),
+        component(component_),
         grid(grid_),
         est(est_),
         maximumMarking(false),
@@ -116,14 +116,14 @@ namespace AMDiS {
     }
 
     /// Creates a scalar marker depending on the strategy set in parameters.
-    static Marker<Traits>* createMarker(std::string name, int number_, const EstType& est_, Grid* grid_);
+    static Marker<Traits>* createMarker(std::string name, std::string component_, const EstType& est_, Grid* grid_);
 
   protected:
     /// Name of the scalar marker.
     std::string name;
 
-    /// Marker number
-    int number;
+    /// Problem component to work on
+    std::string component;
 
     /// Pointer to the grid
     Grid* grid;
@@ -191,8 +191,8 @@ namespace AMDiS {
 
   public:
     /// Constructor.
-    GRMarker(std::string name_, int number_, const EstType& est_, Grid* grid_)
-      : Marker<Traits>(name_, number_, est_, grid_)
+    GRMarker(std::string name_, std::string component_, const EstType& est_, Grid* grid_)
+      : Marker<Traits>(name_, component_, est_, grid_)
     {}
 
     /// Implementation of Marker::markElement().
@@ -223,8 +223,8 @@ namespace AMDiS {
 
   public:
     /// Constructor.
-    MSMarker(std::string name_, int number_, const EstType& est_, Grid* grid_)
-      : Marker<Traits>(name_, number_, est_, grid_),
+    MSMarker(std::string name_, std::string component_, const EstType& est_, Grid* grid_)
+      : Marker<Traits>(name_, component_, est_, grid_),
         MSGamma(0.5),
         MSGammaC(0.1)
     {
@@ -263,8 +263,8 @@ namespace AMDiS {
 
   public:
     /// Constructor.
-    ESMarker(std::string name_, int number_, const EstType& est_, Grid* grid_)
-      : Marker<Traits>(name_, number_, est_, grid_),
+    ESMarker(std::string name_, std::string component_, const EstType& est_, Grid* grid_)
+      : Marker<Traits>(name_, component_, est_, grid_),
         ESTheta(0.9),
         ESThetaC(0.2)
     {
@@ -303,8 +303,8 @@ namespace AMDiS {
 
   public:
     /// Constructor.
-    GERSMarker(std::string name_, int number_, const EstType& est_, Grid* grid_)
-      : Marker<Traits>(name_, number_, est_, grid_),
+    GERSMarker(std::string name_, std::string component_, const EstType& est_, Grid* grid_)
+      : Marker<Traits>(name_, component_, est_, grid_),
         oldErrSum(0.0),
         GERSThetaStar(0.6),
         GERSNu(0.1),
diff --git a/src/amdis/ProblemStat.hpp b/src/amdis/ProblemStat.hpp
index 221b7239cb35dd22420776cefb558732b5ceb038..5665e44786adb248d182328f96ed224ef2aac42c 100644
--- a/src/amdis/ProblemStat.hpp
+++ b/src/amdis/ProblemStat.hpp
@@ -55,7 +55,7 @@ namespace AMDiS
     using Element  = typename GridView::template Codim<0>::Entity;
     using WorldVector = typename Element::Geometry::GlobalCoordinate;
 
-    /// Dimension of the mesh
+    /// Dimension of the grid
     static constexpr int dim = Grid::dimension;
 
     /// Dimension of the world
@@ -225,13 +225,13 @@ namespace AMDiS
       createFileWriter();
     }
 
-
+/*
     /// Return the gridView of the leaf-level
     auto leafGridView() { return grid_->leafGridView(); }
 
     /// Return the gridView of levle `level`
     auto levelGridView(int level) { return grid_->levelGridView(level); }
-
+*/
     /// Return the \ref feSpaces
     std::shared_ptr<GlobalBasis> const& getGlobalBasis() { return globalBasis_; }
 
diff --git a/src/amdis/ProblemStat.inc.hpp b/src/amdis/ProblemStat.inc.hpp
index 307d9cfcb91bba217784d462c0499bcc4b6ca184..339f5adb9916f9d52b454361522082bf2a8723d8 100644
--- a/src/amdis/ProblemStat.inc.hpp
+++ b/src/amdis/ProblemStat.inc.hpp
@@ -144,7 +144,7 @@ void ProblemStat<Traits>::createMarker()
     int i = std::stoi(to_string(treePath)); // TODO: To be removed
     // replace i with treePath once supported
     auto marker_ = Marker<Traits>::createMarker(
-      componentName, i, estimates[std::to_string(i)], componentGrids[i]);
+      componentName, std::to_string(i), estimates[std::to_string(i)], componentGrids[i]);
     if (marker_)
       marker.push_back(marker_);