diff --git a/dune/fem-dg/examples/advdiff/CMakeLists.txt b/dune/fem-dg/examples/advdiff/CMakeLists.txt
index d247b303570518533c81939369c908f5d9eac975..d059849d497dbd8e108189200114b592bf5ba9b5 100644
--- a/dune/fem-dg/examples/advdiff/CMakeLists.txt
+++ b/dune/fem-dg/examples/advdiff/CMakeLists.txt
@@ -1,4 +1,4 @@
-dune_install( main.cc models.hh problemcreator.hh problems.hh)
+dune_install( main.cc models.hh algorithmcreator.hh problems.hh)
 
 dune_add_subdirs( test )
 
diff --git a/dune/fem-dg/examples/advdiff/problemcreator.hh b/dune/fem-dg/examples/advdiff/algorithmcreator.hh
similarity index 95%
rename from dune/fem-dg/examples/advdiff/problemcreator.hh
rename to dune/fem-dg/examples/advdiff/algorithmcreator.hh
index f4c83a66f2111af1df46274db821697c8e8f4e2b..0584f7ee954c6997d0e596ddc14362316fa934be 100644
--- a/dune/fem-dg/examples/advdiff/problemcreator.hh
+++ b/dune/fem-dg/examples/advdiff/algorithmcreator.hh
@@ -47,10 +47,10 @@ namespace Fem
    *  \brief problem creator for an advection diffusion problem
    */
   template< class GridImp >
-  struct AdvectionDiffusionProblemCreator
+  struct AdvectionDiffusionAlgorithmCreator
   {
 
-    struct SubAdvectionDiffusionProblemCreator
+    struct SubAdvectionDiffusionAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -91,7 +91,7 @@ namespace Fem
 
       static ProblemInterfaceType* problem()
       {
-        return AnalyticalAdvDiffProblemCreator<FunctionSpaceType,GridType>::apply();
+        return AnalyticalAdvDiffAlgorithmCreator<FunctionSpaceType,GridType>::apply();
       }
 
 
@@ -136,12 +136,12 @@ namespace Fem
       };
 
       template< int polOrd >
-      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubAdvectionDiffusionProblemCreator, polOrd >;
+      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubAdvectionDiffusionAlgorithmCreator, polOrd >;
 
     };
 
     template< int polOrd >
-    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubAdvectionDiffusionProblemCreator >;
+    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubAdvectionDiffusionAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/advdiff/main.cc b/dune/fem-dg/examples/advdiff/main.cc
index a06bc6afacbc87117abf179eef904d990cba68f7..677669100ba34f6b8563b6c90a8474ef2fcaca2b 100644
--- a/dune/fem-dg/examples/advdiff/main.cc
+++ b/dune/fem-dg/examples/advdiff/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::AdvectionDiffusionProblemCreator< GridType > problem;
+    Dune::Fem::AdvectionDiffusionAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/dataio/CMakeLists.txt b/dune/fem-dg/examples/dataio/CMakeLists.txt
index 2604cc02d0d9026e024a74962d288dd5f3fa60a4..927d6ab430c7953cf795238660ff71f695dee22a 100644
--- a/dune/fem-dg/examples/dataio/CMakeLists.txt
+++ b/dune/fem-dg/examples/dataio/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( checkedcheckpointhandler.hh  checkpointing.hh  models.hh  problemcreator.hh  problem.hh )
+dune_install( checkedcheckpointhandler.hh  checkpointing.hh  models.hh  algorithmcreator.hh  problem.hh )
 
 dune_add_subdirs( test )
diff --git a/dune/fem-dg/examples/dataio/problemcreator.hh b/dune/fem-dg/examples/dataio/algorithmcreator.hh
similarity index 96%
rename from dune/fem-dg/examples/dataio/problemcreator.hh
rename to dune/fem-dg/examples/dataio/algorithmcreator.hh
index 735f6683beec4f303e151e0cb572333b89675810..7a4b71d7dbfe2785e0dc8a7ba084cda58baf8119 100644
--- a/dune/fem-dg/examples/dataio/problemcreator.hh
+++ b/dune/fem-dg/examples/dataio/algorithmcreator.hh
@@ -90,10 +90,10 @@ namespace Fem
    *  \brief problem creator for an advection diffusion problem
    */
   template< class GridImp >
-  struct CheckPointingProblemCreator
+  struct CheckPointingAlgorithmCreator
   {
 
-    struct SubCheckPointingProblemCreator
+    struct SubCheckPointingAlgorithmCreator
     {
 
       typedef GridImp                                         GridType;
@@ -144,12 +144,12 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = Dune::Fem::SubCheckPointingAlgorithm< GridType, SubCheckPointingProblemCreator, polOrd >;
+      using Algorithm = Dune::Fem::SubCheckPointingAlgorithm< GridType, SubCheckPointingAlgorithmCreator, polOrd >;
 
     };
 
     template <int polOrd>
-    using Algorithm = Dune::Fem::EvolutionAlgorithmBase< CheckPointEvolutionAlgorithmTraits< polOrd, SubCheckPointingProblemCreator >, UncoupledSubAlgorithms  >;
+    using Algorithm = Dune::Fem::EvolutionAlgorithmBase< CheckPointEvolutionAlgorithmTraits< polOrd, SubCheckPointingAlgorithmCreator >, UncoupledSubAlgorithms  >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/dataio/dataconvert.cc b/dune/fem-dg/examples/dataio/dataconvert.cc
index 2c18ed94bc65dd079770dfd2e3adf9ff1eab43a0..c362bcdbec2979c20968ad9a00ea324e12483f03 100644
--- a/dune/fem-dg/examples/dataio/dataconvert.cc
+++ b/dune/fem-dg/examples/dataio/dataconvert.cc
@@ -39,7 +39,7 @@ void appendUserParameter()
 #define PARAMETER_APPEND_FUNCTION appendUserParameter
 
 typedef Dune::GridSelector :: GridType GridType;
-typedef ProblemCreator< GridType > ProblemTraits;
+typedef AlgorithmCreator< GridType > ProblemTraits;
 
 typedef CheckPointingAlgorithm<GridType,
                              ProblemTraits,
diff --git a/dune/fem-dg/examples/dataio/main.cc b/dune/fem-dg/examples/dataio/main.cc
index 21810505d9ac146bdf60a30daf0cf30dbb94e7dc..affed4eb1633cc4ad9061e85fc495b921017bed7 100644
--- a/dune/fem-dg/examples/dataio/main.cc
+++ b/dune/fem-dg/examples/dataio/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::CheckPointingProblemCreator< GridType > problem;
+    Dune::Fem::CheckPointingAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/euler/CMakeLists.txt b/dune/fem-dg/examples/euler/CMakeLists.txt
index 0108bc21be0f6227c8a2ac565f33eb0eb57c1de8..a01072f0fffa3ea242b4817129d4a0928c0994da 100644
--- a/dune/fem-dg/examples/euler/CMakeLists.txt
+++ b/dune/fem-dg/examples/euler/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( main.cc  models.hh  problemcreator.hh  problems.hh )
+dune_install( main.cc  models.hh  algorithmcreator.hh  problems.hh )
 
 dune_add_subdirs( test ) 
diff --git a/dune/fem-dg/examples/euler/problemcreator.hh b/dune/fem-dg/examples/euler/algorithmcreator.hh
similarity index 96%
rename from dune/fem-dg/examples/euler/problemcreator.hh
rename to dune/fem-dg/examples/euler/algorithmcreator.hh
index 213088b73dbb7336b97e8745caa21a739c405f54..ea0a5eaa0d90b91039b0eda25a0d30ddddb08ddc 100644
--- a/dune/fem-dg/examples/euler/problemcreator.hh
+++ b/dune/fem-dg/examples/euler/algorithmcreator.hh
@@ -47,10 +47,10 @@ namespace Fem
 {
 
   template< class GridImp >
-  struct EulerProblemCreator
+  struct EulerAlgorithmCreator
   {
 
-    struct SubEulerProblemCreator
+    struct SubEulerAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -94,7 +94,7 @@ namespace Fem
 
       static ProblemInterfaceType* problem()
       {
-        return AnalyticalEulerProblemCreator<GridType>::apply();
+        return AnalyticalEulerAlgorithmCreator<GridType>::apply();
       }
 
       template< int polOrd >
@@ -139,11 +139,11 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubAdvectionAlgorithm< GridType, SubEulerProblemCreator, polOrd >;
+      using Algorithm = SubAdvectionAlgorithm< GridType, SubEulerAlgorithmCreator, polOrd >;
     };
 
     template <int polOrd>
-    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubEulerProblemCreator >;
+    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubEulerAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/euler/main.cc b/dune/fem-dg/examples/euler/main.cc
index eb691a02d4e3700b9b3b7403be928af2b72782d0..f77fc1e57d3f22bf7880f6aee58c8a2e96d054b5 100644
--- a/dune/fem-dg/examples/euler/main.cc
+++ b/dune/fem-dg/examples/euler/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::EulerProblemCreator< GridType > problem;
+    Dune::Fem::EulerAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/incompnavierstokes/CMakeLists.txt b/dune/fem-dg/examples/incompnavierstokes/CMakeLists.txt
index 80e9539e7124a5838b7f602d4d7633f0a035ba29..04c68182d1fd8cd60545fb4d57230637773b26fd 100644
--- a/dune/fem-dg/examples/incompnavierstokes/CMakeLists.txt
+++ b/dune/fem-dg/examples/incompnavierstokes/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( main.cc incompnavierstokesalgorithm.hh  models.hh  problemcreator.hh  problems.hh  stokesmodel.hh )
+dune_install( main.cc incompnavierstokesalgorithm.hh  models.hh  algorithmcreator.hh  problems.hh  stokesmodel.hh )
 
 dune_add_subdirs( test )
diff --git a/dune/fem-dg/examples/incompnavierstokes/problemcreator.hh b/dune/fem-dg/examples/incompnavierstokes/algorithmcreator.hh
similarity index 95%
rename from dune/fem-dg/examples/incompnavierstokes/problemcreator.hh
rename to dune/fem-dg/examples/incompnavierstokes/algorithmcreator.hh
index dbd4393023bc183d9ba7ca81d4b24855e0598f53..ca0fe6ced06817ff846e15e95cd177e1568433fe 100644
--- a/dune/fem-dg/examples/incompnavierstokes/problemcreator.hh
+++ b/dune/fem-dg/examples/incompnavierstokes/algorithmcreator.hh
@@ -55,14 +55,14 @@ namespace Fem
 {
 
   template< class GridImp >
-  struct IncompressibleNavierStokesProblemCreator
+  struct IncompressibleNavierStokesAlgorithmCreator
   {
 
   //=======================================
   //     STOKES PROBLEM CREATOR
   //=======================================
 
-    struct SubStokesProblemCreator
+    struct SubStokesAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -75,7 +75,7 @@ namespace Fem
                                      PrimalDiffusionFlux::Enum::general > AC;
 
 
-      struct SubPoissonProblemCreator
+      struct SubPoissonAlgorithmCreator
       {
 
         typedef typename AC::GridType                         GridType;
@@ -142,7 +142,7 @@ namespace Fem
         };
 
         template <int polOrd>
-        using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonProblemCreator, polOrd >;
+        using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonAlgorithmCreator, polOrd >;
       };
 
       typedef typename AC::GridType                                       GridType;
@@ -176,9 +176,9 @@ namespace Fem
       struct DiscreteTraits
       {
       private:
-        typedef typename SubPoissonProblemCreator::template DiscreteTraits< polOrd > PoissonDiscreteTraits;
+        typedef typename SubPoissonAlgorithmCreator::template DiscreteTraits< polOrd > PoissonDiscreteTraits;
         typedef typename PoissonDiscreteTraits::DiscreteFunctionType                 VelDiscreteFunctionType;
-        typedef typename SubPoissonProblemCreator::FunctionSpaceType                 VelFunctionSpaceType;
+        typedef typename SubPoissonAlgorithmCreator::FunctionSpaceType                 VelFunctionSpaceType;
         typedef typename AC::template DiscreteFunctionSpaces< GridPartType, polOrd, FunctionSpaceType>
                                                                                      DFSpaceType;
         typedef typename AC::template DiscreteFunctionSpaces< GridPartType, polOrd, VelFunctionSpaceType>
@@ -221,7 +221,7 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubStokesAlgorithm< GridType, SubStokesProblemCreator, SubPoissonProblemCreator, polOrd >;
+      using Algorithm = SubStokesAlgorithm< GridType, SubStokesAlgorithmCreator, SubPoissonAlgorithmCreator, polOrd >;
     };
 
 
@@ -229,7 +229,7 @@ namespace Fem
   //     NAVIER-STOKES PROBLEM CREATOR
   //=======================================
 
-    struct SubNavierStokesProblemCreator
+    struct SubNavierStokesAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -320,14 +320,14 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubNavierStokesProblemCreator, polOrd >;
+      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubNavierStokesAlgorithmCreator, polOrd >;
 
     };
 
 
     // \todo implement coupling and exchange "UncoupledSubAlgorithms"
     template <int polOrd>
-    using Algorithm = IncompNavierStokesAlgorithm< polOrd, UncoupledSubAlgorithms, SubStokesProblemCreator, SubNavierStokesProblemCreator, SubStokesProblemCreator >;
+    using Algorithm = IncompNavierStokesAlgorithm< polOrd, UncoupledSubAlgorithms, SubStokesAlgorithmCreator, SubNavierStokesAlgorithmCreator, SubStokesAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/incompnavierstokes/main.cc b/dune/fem-dg/examples/incompnavierstokes/main.cc
index 6d7e9bf01627b9e15237d0bcdaf280a8e4fa1e32..6fca8213c45ace7c29261ebe82e458e7b9ee662f 100644
--- a/dune/fem-dg/examples/incompnavierstokes/main.cc
+++ b/dune/fem-dg/examples/incompnavierstokes/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::IncompressibleNavierStokesProblemCreator< GridType > problem;
+    Dune::Fem::IncompressibleNavierStokesAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/navierstokes/CMakeLists.txt b/dune/fem-dg/examples/navierstokes/CMakeLists.txt
index 751cfc66eeea938a96a5e6c78ec0708571de42eb..6cf6cf5ffc96e5958dead19ba579d4e041b2ca2a 100644
--- a/dune/fem-dg/examples/navierstokes/CMakeLists.txt
+++ b/dune/fem-dg/examples/navierstokes/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( main.cc ns_model.hh problemcreator.hh ns_model_spec.hh thermodynamics.hh passtraits.hh)
+dune_install( main.cc ns_model.hh algorithmcreator.hh ns_model_spec.hh thermodynamics.hh passtraits.hh)
 
 dune_add_subdirs( test )
diff --git a/dune/fem-dg/examples/navierstokes/problemcreator.hh b/dune/fem-dg/examples/navierstokes/algorithmcreator.hh
similarity index 97%
rename from dune/fem-dg/examples/navierstokes/problemcreator.hh
rename to dune/fem-dg/examples/navierstokes/algorithmcreator.hh
index d186d13e8e2e1af78f5f70197b8a6b58b1739d15..835567e5ea5949b90ead40a938c7bcb9afeb2177 100644
--- a/dune/fem-dg/examples/navierstokes/problemcreator.hh
+++ b/dune/fem-dg/examples/navierstokes/algorithmcreator.hh
@@ -49,11 +49,11 @@ namespace Fem
 {
 
   template< class GridImp >
-  struct NavierStokesProblemCreator
+  struct NavierStokesAlgorithmCreator
   {
 
 
-    struct SubNavierStokesProblemCreator
+    struct SubNavierStokesAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -137,12 +137,12 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubNavierStokesProblemCreator, polOrd >;
+      using Algorithm = SubAdvectionDiffusionAlgorithm< GridType, SubNavierStokesAlgorithmCreator, polOrd >;
 
     };
 
     template <int polOrd>
-    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubNavierStokesProblemCreator >;
+    using Algorithm = EvolutionAlgorithm< polOrd, UncoupledSubAlgorithms, SubNavierStokesAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/navierstokes/main.cc b/dune/fem-dg/examples/navierstokes/main.cc
index f082e75d4da60db60c1e6fde7a1e1d54becd924d..70c376699d9a8664f77ff612c83828dba1fabff9 100644
--- a/dune/fem-dg/examples/navierstokes/main.cc
+++ b/dune/fem-dg/examples/navierstokes/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::NavierStokesProblemCreator< GridType > problem;
+    Dune::Fem::NavierStokesAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/poisson/CMakeLists.txt b/dune/fem-dg/examples/poisson/CMakeLists.txt
index d76bad1a0ea7cb35308295802ba84b4b3d869c71..346cbb58414854a9532f679b76b6b88efda8a447 100644
--- a/dune/fem-dg/examples/poisson/CMakeLists.txt
+++ b/dune/fem-dg/examples/poisson/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( main.cc  gridinitializer.hh  models.hh  problemcreator.hh  problems.hh )
+dune_install( main.cc  gridinitializer.hh  models.hh  algorithmcreator.hh  problems.hh )
 
 dune_add_subdirs( test )
diff --git a/dune/fem-dg/examples/poisson/problemcreator.hh b/dune/fem-dg/examples/poisson/algorithmcreator.hh
similarity index 97%
rename from dune/fem-dg/examples/poisson/problemcreator.hh
rename to dune/fem-dg/examples/poisson/algorithmcreator.hh
index 90e6373eb14556b0ec68934d37f8930092e32b8c..d47275b35778d16d94caab9c5db3acaa612bac1e 100644
--- a/dune/fem-dg/examples/poisson/problemcreator.hh
+++ b/dune/fem-dg/examples/poisson/algorithmcreator.hh
@@ -45,10 +45,10 @@ namespace Fem
 {
 
   template< class GridImp >
-  struct PoissonProblemCreator
+  struct PoissonAlgorithmCreator
   {
 
-    struct SubPoissonProblemCreator
+    struct SubPoissonAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp,
                                      Galerkin::Enum::dg,
@@ -125,12 +125,12 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonProblemCreator, polOrd >;
+      using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonAlgorithmCreator, polOrd >;
 
     };
 
     template <int polOrd>
-    using Algorithm = SteadyStateAlgorithm< polOrd, UncoupledSubAlgorithms, SubPoissonProblemCreator >;
+    using Algorithm = SteadyStateAlgorithm< polOrd, UncoupledSubAlgorithms, SubPoissonAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/poisson/main.cc b/dune/fem-dg/examples/poisson/main.cc
index fc9acd2cc09152e6f0a5013a48bb561a4971b37b..2ed108a5b33704e32aaee692eaf285dcc6c0ca02 100644
--- a/dune/fem-dg/examples/poisson/main.cc
+++ b/dune/fem-dg/examples/poisson/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::PoissonProblemCreator< GridType > problem;
+    Dune::Fem::PoissonAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/examples/stokes/CMakeLists.txt b/dune/fem-dg/examples/stokes/CMakeLists.txt
index c33b516a6f68e33bfdaaa97d6c82c0edc8d4f085..92fcad430852f0e0afa7829714e5b4bf59fcb3c5 100644
--- a/dune/fem-dg/examples/stokes/CMakeLists.txt
+++ b/dune/fem-dg/examples/stokes/CMakeLists.txt
@@ -1,3 +1,3 @@
-dune_install( main.cc models.hh  problemcreator.hh  problems.hh  stokesalgorithm.hh  stokesassembler.hh  tensorhelper.hh )
+dune_install( main.cc models.hh  algorithmcreator.hh  problems.hh  stokesalgorithm.hh  stokesassembler.hh  tensorhelper.hh )
      
 dune_add_subdirs( test )
diff --git a/dune/fem-dg/examples/stokes/problemcreator.hh b/dune/fem-dg/examples/stokes/algorithmcreator.hh
similarity index 96%
rename from dune/fem-dg/examples/stokes/problemcreator.hh
rename to dune/fem-dg/examples/stokes/algorithmcreator.hh
index abeb1657c48fd030702e12e4d4fa0ca82d4fa3c2..01a39d095318170a13e37e326b15b49ac9b18e5f 100644
--- a/dune/fem-dg/examples/stokes/problemcreator.hh
+++ b/dune/fem-dg/examples/stokes/algorithmcreator.hh
@@ -66,15 +66,15 @@ namespace Fem
   static const AvailableSolvers< solverEnum > checkSolverInstalled;
 
   template< class GridImp >
-  struct StokesProblemCreator
+  struct StokesAlgorithmCreator
   {
 
-    struct SubStokesProblemCreator
+    struct SubStokesAlgorithmCreator
     {
       typedef AlgorithmConfigurator< GridImp, galerkinEnum, adaptivityEnum, dfSpaceEnum, solverEnum, advLimiterEnum,
                                      matrixEnum, advFluxEnum, diffFluxEnum > AC;
 
-      struct SubPoissonProblemCreator
+      struct SubPoissonAlgorithmCreator
       {
 
         typedef typename AC::GridType                         GridType;
@@ -149,7 +149,7 @@ namespace Fem
         };
 
         template <int polOrd>
-        using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonProblemCreator, polOrd >;
+        using Algorithm = SubEllipticAlgorithm< GridType, SubPoissonAlgorithmCreator, polOrd >;
       };
 
       typedef typename AC::GridType                         GridType;
@@ -193,7 +193,7 @@ namespace Fem
       struct DiscreteTraits
       {
       private:
-        typedef typename SubPoissonProblemCreator::template DiscreteTraits< polOrd > PoissonDiscreteTraits;
+        typedef typename SubPoissonAlgorithmCreator::template DiscreteTraits< polOrd > PoissonDiscreteTraits;
         typedef typename PoissonDiscreteTraits::DiscreteFunctionType                 VelDiscreteFunctionType;
         typedef typename AC::template DiscreteFunctionSpaces< GridPartType, polOrd, FunctionSpaceType>
                                                                                      DFSpaceType;
@@ -228,12 +228,12 @@ namespace Fem
       };
 
       template <int polOrd>
-      using Algorithm = SubStokesAlgorithm< GridType, SubStokesProblemCreator, SubPoissonProblemCreator, polOrd >;
+      using Algorithm = SubStokesAlgorithm< GridType, SubStokesAlgorithmCreator, SubPoissonAlgorithmCreator, polOrd >;
     };
 
 
     template <int polOrd>
-    using Algorithm = SteadyStateAlgorithm< polOrd, UncoupledSubAlgorithms, SubStokesProblemCreator >;
+    using Algorithm = SteadyStateAlgorithm< polOrd, UncoupledSubAlgorithms, SubStokesAlgorithmCreator >;
 
     typedef GridImp                                         GridType;
 
diff --git a/dune/fem-dg/examples/stokes/main.cc b/dune/fem-dg/examples/stokes/main.cc
index 15af6677e9c43496aaf34e8ea52158a10744661a..2b46803bad04267a2fe3cc5cf81d6462bcc2c4de 100644
--- a/dune/fem-dg/examples/stokes/main.cc
+++ b/dune/fem-dg/examples/stokes/main.cc
@@ -2,7 +2,7 @@
 #include <config.h>
 
 #include <dune/fem-dg/misc/simulator.hh>
-#include "problemcreator.hh"
+#include "algorithmcreator.hh"
 
 
 int main(int argc, char ** argv)
@@ -21,10 +21,10 @@ int main(int argc, char ** argv)
     Dune::Fem::Parameter::write("parameter.log");
 
     typedef Dune::GridSelector :: GridType GridType;
-    Dune::Fem::StokesProblemCreator< GridType > problem;
+    Dune::Fem::StokesAlgorithmCreator< GridType > algorithmCreator;
 
     // run simulation
-    Dune::Fem::Simulator::run( problem );
+    Dune::Fem::Simulator::run( algorithmCreator );
   }
   catch (const Dune::Exception &e)
   {
diff --git a/dune/fem-dg/misc/configurator.hh b/dune/fem-dg/misc/configurator.hh
index ec2d39cfd36dcf02d4bb483396a6905509bb4a27..2d2e0932e504c3baa5b693a953284da6d3d291f8 100644
--- a/dune/fem-dg/misc/configurator.hh
+++ b/dune/fem-dg/misc/configurator.hh
@@ -10,7 +10,7 @@ namespace Fem
 
 
   /**
-   * \brief Convenience class for ProblemCreator classes.
+   * \brief Convenience class for AlgorithmCreator classes.
    *
    * The module dune-fem-dg needs a lot of templates and typedefs which might confuse some users.
    * Furthermore, redundancy of templates expressions which are not updated correctly