diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index eabe3196eb12ee00aedde4bdd9d057a3ffe7322b..7c15b244c593c19019d65c29a8e153aeec79ed5c 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -260,27 +260,23 @@ int main(int argc, char *argv[]) {
 
         VectorType *u_old_old_ptr = (run == 1) ? nullptr : &u_old_old;
 
-        typedef TimeSteppingScheme<VectorType, MatrixType,
-                                   decltype(dirichletFunction),
-                                   dim> TimeSteppingSchemeType;
-        Dune::shared_ptr<TimeSteppingSchemeType> timeSteppingScheme;
+        Dune::shared_ptr<TimeSteppingScheme<VectorType, MatrixType,
+                                            decltype(dirichletFunction), dim>>
+        timeSteppingScheme;
         {
-          typedef ImplicitEuler<VectorType, MatrixType,
-                                decltype(dirichletFunction), dim> IE;
-          typedef ImplicitTwoStep<VectorType, MatrixType,
-                                  decltype(dirichletFunction), dim> ITS;
-
           switch (parset.get<Config::scheme>("timeSteppingScheme")) {
             case Config::ImplicitTwoStep:
               if (run != 1) {
-                timeSteppingScheme = Dune::make_shared<ITS>(
+                timeSteppingScheme = Dune::make_shared<ImplicitTwoStep<
+                    VectorType, MatrixType, decltype(dirichletFunction), dim>>(
                     ell, stiffnessMatrix, u_old, u_old_old_ptr, ignoreNodes,
                     dirichletFunction, time, tau);
                 break;
               }
             // Fall through
             case Config::ImplicitEuler:
-              timeSteppingScheme = Dune::make_shared<IE>(
+              timeSteppingScheme = Dune::make_shared<ImplicitEuler<
+                  VectorType, MatrixType, decltype(dirichletFunction), dim>>(
                   ell, stiffnessMatrix, u_old, u_old_old_ptr, ignoreNodes,
                   dirichletFunction, time, tau);
               break;