diff --git a/demo/init/ball.dat.2d b/demo/init/ball.dat.2d
index ddd849b415900ea47dce8f10fac55761de4c3014..d4544348f30dbc38c3754430fdd7b6f00c2bf7cd 100644
--- a/demo/init/ball.dat.2d
+++ b/demo/init/ball.dat.2d
@@ -5,7 +5,7 @@ ballMesh->global refinements: 3
 
 ball->mesh:                   ballMesh
 ball->dim:                    2
-ball->polynomial degree:      1
+ball->polynomial degree[0]:   1
 
 ball->space->components:      1
 
diff --git a/demo/init/ball.dat.3d b/demo/init/ball.dat.3d
index 767841ceba5f6bd4806272cc2460ef3afe9029f5..e46875d329ec370dc917229bafa486afde81bd0c 100644
--- a/demo/init/ball.dat.3d
+++ b/demo/init/ball.dat.3d
@@ -5,7 +5,7 @@ ballMesh->global refinements: 15
 
 ball->mesh:                   ballMesh
 ball->dim:                    3
-ball->polynomial degree:      1
+ball->polynomial degree[0]:   1
 
 ball->space->components:      1
 
diff --git a/demo/init/bunny.init b/demo/init/bunny.init
index 0b0af6f5ba6f1138fbeb70cb367931177470fa1d..0e496538734037850f345b921172dedb06a2b2d7 100644
--- a/demo/init/bunny.init
+++ b/demo/init/bunny.init
@@ -4,9 +4,9 @@ bunnyMesh->macro file name:       ./macro/bunny_fixed.macro
 bunnyMesh->check:                 0
 bunnyMesh->global refinements:    0
 
-bunny->mesh:                 bunnyMesh
-bunny->dim:                  2
-bunny->polynomial degree:    1
+bunny->mesh:                  bunnyMesh
+bunny->dim:                   2
+bunny->polynomial degree[0]:  1
 
 bunny->solver:                cg
 bunny->solver->max iteration: 100
diff --git a/demo/init/ellipt.dat.1d b/demo/init/ellipt.dat.1d
index 605f462145805e6b5f32e5705f3d294e2e998e95..d5775d89044ae18b5c26ab5dde6e11fece6a5f0d 100644
--- a/demo/init/ellipt.dat.1d
+++ b/demo/init/ellipt.dat.1d
@@ -5,7 +5,7 @@ elliptMesh->global refinements: 3
 
 ellipt->mesh:                   elliptMesh
 ellipt->dim:                    1
-ellipt->polynomial degree:      1
+ellipt->polynomial degree[0]:   1
 ellipt->components:             1
 
 ellipt->solver:                 cg
diff --git a/demo/init/ellipt.dat.2d b/demo/init/ellipt.dat.2d
index 838443899cb245a946749ded63bb95d47f7e23ae..e01f76887f8cb3d1c8ccff6f6e89d82ce68cd853 100644
--- a/demo/init/ellipt.dat.2d
+++ b/demo/init/ellipt.dat.2d
@@ -5,7 +5,7 @@ elliptMesh->global refinements: 0
 
 ellipt->mesh:                   elliptMesh
 ellipt->dim:                    2
-ellipt->polynomial degree:      1
+ellipt->polynomial degree[0]:   1
 ellipt->components:             1
 
 ellipt->solver:                 cg
diff --git a/demo/init/ellipt.dat.3d b/demo/init/ellipt.dat.3d
index 202d7fa640060da43110c776ae71dd26f9258440..ab68dc9a472b6aaa5a705d7b076807d816bf783a 100644
--- a/demo/init/ellipt.dat.3d
+++ b/demo/init/ellipt.dat.3d
@@ -5,7 +5,7 @@ elliptMesh->global refinements: 0
 
 ellipt->mesh:                   elliptMesh
 ellipt->dim:                    3
-ellipt->polynomial degree:      1
+ellipt->polynomial degree[0]:   1
 ellipt->components:             1
 
 ellipt->solver:                 cg
diff --git a/demo/init/heat.dat.1d b/demo/init/heat.dat.1d
index 23191b98dc49cfd858bf42a5ea43b841b79feb2f..00e3e0bb9dba1c2e444ef109ed9014956094bf92 100644
--- a/demo/init/heat.dat.1d
+++ b/demo/init/heat.dat.1d
@@ -3,7 +3,7 @@ dimension of world:   1
 heatMesh->macro file name:            ./macro/macro.stand.1d
 heatMesh->global refinements:         0
 
-heat->space->polynomial degree:       1
+heat->space->polynomial degree[0]:    1
 heat->space->dim:                     1
 heat->space->mesh:                    heatMesh
 
diff --git a/demo/init/heat.dat.3d b/demo/init/heat.dat.3d
index cad89be7b817a45966bdd2d843500ef9e2803e4e..983cab4dc06ad9ccb96286d7a89e58c5edd169ed 100644
--- a/demo/init/heat.dat.3d
+++ b/demo/init/heat.dat.3d
@@ -3,7 +3,7 @@ dimension of world:   3
 heatMesh->macro file name:            ./macro/macro.stand.3d
 heatMesh->global refinements:         3
 
-heat->space->polynomial degree:       1
+heat->space->polynomial degree[0]:    1
 heat->space->dim:                     3
 heat->space->mesh:                    heatMesh
 
diff --git a/demo/init/neumann.dat.2d b/demo/init/neumann.dat.2d
index 9b970fd7cb6f0fb178fb8ec8f242b2b6e570eb8a..c543e95982ed916abae122db957f6bfd4a37ee9e 100644
--- a/demo/init/neumann.dat.2d
+++ b/demo/init/neumann.dat.2d
@@ -5,7 +5,7 @@ neumannMesh->global refinements: 0
 
 neumann->mesh:                   neumannMesh
 neumann->dim:                    2
-neumann->polynomial degree:      1
+neumann->polynomial degree[0]:   1
 neumann->components:             1
 
 neumann->solver:                 cg
diff --git a/demo/init/parametric.dat.3d b/demo/init/parametric.dat.3d
index 4e78697109cfb78c1a61726ad00951359510d717..4905e9c1edb4038ba92504aa1ed2a2550c3f0413 100644
--- a/demo/init/parametric.dat.3d
+++ b/demo/init/parametric.dat.3d
@@ -3,10 +3,10 @@ dimension of world:      3
 parametricMesh->macro file name:       ./macro/parametric.macro.3d
 parametricMesh->global refinements:    0
 
-parametric->mesh:                 parametricMesh
-parametric->dim:                  2
-parametric->polynomial degree:    2
-parametric->components:           1
+parametric->mesh:                   parametricMesh
+parametric->dim:                    2
+parametric->polynomial degree[0]:   2
+parametric->components:             1
 
 parametric->solver:                cg
 parametric->solver->max iteration: 100
diff --git a/demo/init/periodic.dat.1d b/demo/init/periodic.dat.1d
index 1a0009978d450d16cfb5a890306b92b8b544298e..012be73a73bfc22fceeaa5fd3d1ca1a98958a783 100644
--- a/demo/init/periodic.dat.1d
+++ b/demo/init/periodic.dat.1d
@@ -6,7 +6,7 @@ periodicMesh->global refinements: 0
 
 periodic->mesh:                   periodicMesh
 periodic->dim:                    1
-periodic->polynomial degree:      1
+periodic->polynomial degree[0]:   1
 periodic->components:             1
 
 periodic->solver:                 cg
diff --git a/demo/init/periodic.dat.2d b/demo/init/periodic.dat.2d
index 9d65cc669237a1bd4b1e72aef93d8053c1f23307..c84b05f090a9e96416d7f98f6dfad195b8ef0be0 100644
--- a/demo/init/periodic.dat.2d
+++ b/demo/init/periodic.dat.2d
@@ -6,7 +6,7 @@ periodicMesh->global refinements:  0
 
 periodic->mesh:                   periodicMesh
 periodic->dim:                    2
-periodic->polynomial degree:      1
+periodic->polynomial degree[0]:   1
 periodic->components:             1
 
 periodic->solver:                 cg
diff --git a/demo/init/periodic.dat.3d b/demo/init/periodic.dat.3d
index 5f99af347ffe6d65b235480ea58717ebc3be6721..b06a63252f579211fb66a3d987665a727a11a4b6 100644
--- a/demo/init/periodic.dat.3d
+++ b/demo/init/periodic.dat.3d
@@ -6,7 +6,7 @@ periodicMesh->global refinements:  0
 
 periodic->mesh:                   periodicMesh
 periodic->dim:                    3
-periodic->polynomial degree:      1
+periodic->polynomial degree[0]:   1
 periodic->components:             1
 
 periodic->solver:                 cg
diff --git a/demo/init/sphere.dat.3d b/demo/init/sphere.dat.3d
index 95644365d48d4a51b659b5b5d52d1d439f23f102..7cad7c70a2c977a358376e7608a45d5c286d89be 100644
--- a/demo/init/sphere.dat.3d
+++ b/demo/init/sphere.dat.3d
@@ -3,10 +3,10 @@ dimension of world:      3
 sphereMesh->macro file name:       ./macro/sphere_macro.3d
 sphereMesh->global refinements:    10
 
-sphere->mesh:                 sphereMesh
-sphere->dim:                  2
-sphere->polynomial degree:    1
-sphere->components:           1
+sphere->mesh:                    sphereMesh
+sphere->dim:                     2
+sphere->polynomial degree[0]:    1
+sphere->components:              1
 
 sphere->solver:                cg
 sphere->solver->max iteration: 100
diff --git a/demo/init/torus.dat.3d b/demo/init/torus.dat.3d
index 101c266d060f755a68c7cb54ac27a157792ee67b..7b98f1930d016dbe50504d8e5d9792dac86d8088 100644
--- a/demo/init/torus.dat.3d
+++ b/demo/init/torus.dat.3d
@@ -3,10 +3,10 @@ dimension of world:      3
 torusMesh->macro file name:       ./macro/torus_macro.3d
 torusMesh->global refinements:    8
 
-torus->mesh:                 torusMesh
-torus->dim:                  2
-torus->polynomial degree:    1
-torus->components:           1
+torus->mesh:                   torusMesh
+torus->dim:                    2
+torus->polynomial degree[0]:   1
+torus->components:             1
 
 torus->solver:                cg
 torus->solver->max iteration: 1000
diff --git a/doc/operatorTerme.tex b/doc/operatorTerme.tex
index 7b8a5f8cdeb28723eb15793f2996fb0adf613f6a..1e677124668f7931fd08e00100832f0f59d5c12f 100755
--- a/doc/operatorTerme.tex
+++ b/doc/operatorTerme.tex
@@ -71,8 +71,8 @@ $F(\{v_i\}_i, \{\nabla w_j\}_j, \vec{x}) \cdot \nabla u$ & \texttt{General\_FOT}
 %==========================================================
 \multicolumn{2}{c}{\scriptsize Second-Order-Terms, sign in strong formulation: -}\\
 \hline
-$\Delta u$ & \texttt{Laplace\_SOT}() \\
-$c \cdot \Delta u$ & \texttt{FactorLaplace\_SOT}($c\in\mathbb{R}$) \\
+$\Delta u$ & \texttt{Simple\_SOT}() \\
+$c \cdot \Delta u$ & \texttt{Simple\_SOT}($c\in\mathbb{R}$) \\
 $\nabla\cdot (f(\vec{x}) \nabla u)$ & \texttt{CoordsAtQP\_SOT}($f:\mathbb{R}^n\rightarrow\mathbb{R}$) \\
 $\nabla\cdot (f(v) \nabla u)$ & \texttt{VecAtQP\_SOT}($v\in${\scriptsize DOFVector}$\langle\mathbb{R}\rangle$, $f:\mathbb{R}\rightarrow\mathbb{R}$) \\
 $\nabla\cdot (f(v, \vec{x}) \nabla u)$ & \texttt{VecAndCoordsAtQP\_SOT}($v\in${\scriptsize DOFVector}$\langle\mathbb{R}\rangle$, $f:\mathbb{R}\times\mathbb{R}^n\rightarrow\mathbb{R}$) \\
@@ -94,4 +94,4 @@ $\nabla \cdot (A(\nabla v, \vec{x}) \nabla u)$ & \texttt{MatrixGradientAndCoords
 $\nabla \cdot (A(\{v_i\}_i, \{\nabla w_j\}_j, \vec{x}) \nabla u)$ & \texttt{General\_SOT}(\small{vector}$\langle${\scriptsize DOFVector}$\langle\mathbb{R}\rangle\rangle$,\small{vector}$\langle${\scriptsize DOFVector}$\langle\mathbb{R}\rangle\rangle$, $ A:\mathbb{R}^n\times$\small{vector}$\langle\mathbb{R}\rangle\times$\small{vector}$\langle\mathbb{R}^n\rangle\rightarrow\mathbb{R}^{n\times n}$, $div:\mathbb{R}^{n\times n}\rightarrow\mathbb{R}^{n}$) \\
 \end{longtable}
 
-\end{document}
\ No newline at end of file
+\end{document}
diff --git a/doc/tutorial/ellipt.tex b/doc/tutorial/ellipt.tex
index 79d7c01277aeac7a89a092200af8a9db351920eb..1905fb2dcc2037c6e1bda2d1a1153f29bf2e5f86 100644
--- a/doc/tutorial/ellipt.tex
+++ b/doc/tutorial/ellipt.tex
@@ -270,7 +270,7 @@ a finer mesh.
 \begin{lstlisting}{}
 ellipt->mesh:                      elliptMesh
 ellipt->dim:                       2
-ellipt->polynomial degree:         1
+ellipt->polynomial degree[0]:      1
 ellipt->components:                1
 \end{lstlisting}
 
diff --git a/doc/tutorial/parametric.tex b/doc/tutorial/parametric.tex
index f7febe27297bb406282af5bf84a23eaf4002958c..44125eb729f8d658447ef390552494bb352ccb85 100644
--- a/doc/tutorial/parametric.tex
+++ b/doc/tutorial/parametric.tex
@@ -1,7 +1,11 @@
 \section{Parametric elements}
 \label{s:parametric}
 
-With parametric elements, problems can be solved on meshes which dimensions are not necessarily equal to the world dimension. Therefore, problems on arbitrary manifolds can be solved. Furthermore, the vertex coordinates of the mesh can be flexible. Hence, moving meshes can be implemented. 
+With parametric elements, problems can be solved on meshes which
+dimensions are not necessarily equal to the world dimension.
+Therefore, problems on arbitrary manifolds can be solved. Furthermore,
+the vertex coordinates of the mesh can be flexible. Hence, moving
+meshes can be implemented.
 
 In this section, we solve equation (\ref{eq:ellipt}) with $f=2x_0$ ($x_0$ is the first component of $x$) on a torus. Then we rotate the torus about the $y$-axis and solve the problem again.
 
@@ -43,7 +47,8 @@ We create a torus with center $(0; 0; 0)$ and the rotation axis in $z$-direction
 
 \subsection{Source code}
 
-First, we define the rotation about the $y$-axis, which is used later to rotate the whole torus and the right hand side function.
+First, we define the rotation about the $y$-axis, which is used later
+to rotate the whole torus and the right hand side function.
 
 \begin{lstlisting}{}
 class YRotation
@@ -87,7 +92,8 @@ private:
 };
 \end{lstlisting}
 
-Every time, the mesh is rotated, the right hand side function will be informed over the method \verb+rotate+. 
+Every time, the mesh is rotated, the right hand side function will be
+informed over the method \verb+rotate+.
 
 Now, we implement the projection on the torus.
 
@@ -132,7 +138,10 @@ protected:
 };
 \end{lstlisting}
 
-In the main program, we create a torus projection as \verb+VOLUME_PROJECTION+ with ID 1. The values of $r_1$ and $r_2$ are chosen, such that the resulting torus is completely surrounded by the macro mesh that is defined later. 
+In the main program, we create a torus projection as
+\verb+VOLUME_PROJECTION+ with ID 1. The values of $r_1$ and $r_2$ are
+chosen, such that the resulting torus is completely surrounded by the
+macro mesh that is defined later.
 
 \begin{lstlisting}{}
 int main(int argc, char* argv[])
@@ -158,9 +167,12 @@ int main(int argc, char* argv[])
   torus.writeFiles(adaptInfo, true);
 \end{lstlisting}
 
-The problem definition and the creation of the adaptation loop are done in the usual way (here, replaced by \verb+...+) . After the adaptation loop has returned, we write the result. 
+The problem definition and the creation of the adaptation loop are
+done in the usual way (here, replaced by \verb+...+) . After the
+adaptation loop has returned, we write the result.
 
-Before we let the torus rotate, some variables are defined. We set the rotation angle to $\frac{\Pi}{3}$.
+Before we let the torus rotate, some variables are defined. We set the
+rotation angle to $\frac{\Pi}{3}$.
 
 \begin{lstlisting}{}
   double rotation = M_PI/3.0;
@@ -181,7 +193,11 @@ Before we let the torus rotate, some variables are defined. We set the rotation
     parametricCoords[i] = new DOFVector<double>(feSpace, "parametric coords");
 \end{lstlisting}
 
-In the next step, we store the rotated vertex coordinates of the mesh in \verb+parametricCoords+,a vector of DOF vectors, where the first vector stores the first component of each vertex coordinate, and so on. In the STL map \verb+visited+, we store which vertices have already been visited, to avoid multiple rotations of the same point.
+In the next step, we store the rotated vertex coordinates of the mesh
+in \verb+parametricCoords+,a vector of DOF vectors, where the first
+vector stores the first component of each vertex coordinate, and so
+on. In the STL map \verb+visited+, we store which vertices have
+already been visited, to avoid multiple rotations of the same point.
 
 \begin{lstlisting}{}
   std::map<DegreeOfFreedom, bool> visited;
@@ -206,14 +222,20 @@ In the next step, we store the rotated vertex coordinates of the mesh in \verb+p
   }
 \end{lstlisting}
 
-We create an instance of class \verb+ParametricFirstOrder+ which then is handed to the mesh. Now, in all future mesh traverses the vertex coordinates stored in \verb+parametricCoords+ are returned, instead of the original coordinates.
+We create an instance of class \verb+ParametricFirstOrder+ which then
+is handed to the mesh. Now, in all future mesh traverses the vertex
+coordinates stored in \verb+parametricCoords+ are returned, instead of
+the original coordinates.
 
 \begin{lstlisting}{}
   ParametricFirstOrder parametric(&parametricCoords);
   torus.getMesh()->setParametric(&parametric);
 \end{lstlisting}
 
-We rotate the right hand side function, reset \verb+adaptInfo+ and start the adaptation loop again. Now, we compute the solution on the rotated torus, which then is written to the files \verb+rotation1.mesh+ and \verb+rotation1.dat+.
+We rotate the right hand side function, reset \verb+adaptInfo+ and
+start the adaptation loop again. Now, we compute the solution on the
+rotated torus, which then is written to the files
+\verb+rotation1.mesh+ and \verb+rotation1.dat+.
 
 \begin{lstlisting}{}
   f.rotate(rotation);
@@ -226,7 +248,9 @@ We rotate the right hand side function, reset \verb+adaptInfo+ and start the ada
   delete dc;
 \end{lstlisting}
 
-We perform another rotation. All we have to do is to modify the coordinates in \verb+parametricCoords+ and to inform $f$ about the rotation.
+We perform another rotation. All we have to do is to modify the
+coordinates in \verb+parametricCoords+ and to inform $f$ about the
+rotation.
 
 \begin{lstlisting}{}
   visited.clear();
@@ -271,7 +295,9 @@ Finally, we free some memory and finish the main program.
 
 \subsection{Parameter file}
 
-In the parameter file, we set the macro file to \verb+./macro/torus_macro.3d+. This two dimensional mesh is 8 times globally refined and successively projected on the torus.
+In the parameter file, we set the macro file to
+\verb+./macro/torus_macro.3d+. This two dimensional mesh is 8 times
+globally refined and successively projected on the torus.
 
 \begin{lstlisting}{}
 dimension of world:      3
@@ -279,9 +305,9 @@ dimension of world:      3
 torusMesh->macro file name:       ./macro/torus_macro.3d
 torusMesh->global refinements:    8
 
-torus->mesh:                 torusMesh
-torus->dim:                  2
-torus->polynomial degree:    1
+torus->mesh:                    torusMesh
+torus->dim:                     2
+torus->polynomial degree[0]:    1
 
 torus->solver:                cg
 torus->solver->max iteration: 1000
diff --git a/doc/tutorial/projections.tex b/doc/tutorial/projections.tex
index 72ff443e6dd8ce566ee110bee05bb2b4e9a26755..b2542196f2129d4f6ae5d98f013b924b392191a4 100644
--- a/doc/tutorial/projections.tex
+++ b/doc/tutorial/projections.tex
@@ -174,9 +174,9 @@ dimension of world:      3
 sphereMesh->macro file name:       ./macro/sphere_macro.3d
 sphereMesh->global refinements:    10
 
-sphere->mesh:                 sphereMesh
-sphere->dim:                  2
-sphere->polynomial degree:    1
+sphere->mesh:                   sphereMesh
+sphere->dim:                    2
+sphere->polynomial degree[0]:   1
 
 sphere->solver:                cg
 sphere->solver->max iteration: 100
diff --git a/doc/tutorial/tutorial.pdf b/doc/tutorial/tutorial.pdf
index 420f82cb5f025e655bd4c493eb2561b68c866fa3..738e7c5f45cd5558e3ea2f79a7c42998bc059efa 100644
Binary files a/doc/tutorial/tutorial.pdf and b/doc/tutorial/tutorial.pdf differ