diff --git a/examples/freeflowchannel/README.md b/examples/freeflowchannel/README.md
index d3076c89256e86704790f1cd120099653cdada41..23a79587ebfb2a588aaaef7370287130977cdfcc 100644
--- a/examples/freeflowchannel/README.md
+++ b/examples/freeflowchannel/README.md
@@ -384,7 +384,9 @@ systems arising from the staggered-grid discretization.
 
 ```cpp
 #include <dumux/nonlinear/newtonsolver.hh>
-#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/linear/istlsolvers.hh>
+#include <dumux/linear/linearalgebratraits.hh>
+#include <dumux/linear/linearsolvertraits.hh>
 #include <dumux/assembly/staggeredfvassembler.hh>
 #include <dumux/assembly/diffmethod.hh> // analytic or numeric differentiation
 ```
@@ -565,7 +567,7 @@ This is where the Jacobian matrix for the Newton solver is assembled.
 We use UMFPack as direct linear solver within each Newton iteration.
 
 ```cpp
-    using LinearSolver = Dumux::UMFPackBackend;
+    using LinearSolver = Dumux::UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>;
     auto linearSolver = std::make_shared<LinearSolver>();
 ```
 
diff --git a/examples/freeflowchannel/main.cc b/examples/freeflowchannel/main.cc
index eda6cc688f8857ca07a87186daa15195962960a1..f96f530ca5518021989e6651fed0d512d69b708f 100644
--- a/examples/freeflowchannel/main.cc
+++ b/examples/freeflowchannel/main.cc
@@ -42,7 +42,9 @@
 // The following files contain the non-linear Newton solver, the available linear solver backends and the assembler for the linear
 // systems arising from the staggered-grid discretization.
 #include <dumux/nonlinear/newtonsolver.hh>
-#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/linear/istlsolvers.hh>
+#include <dumux/linear/linearalgebratraits.hh>
+#include <dumux/linear/linearsolvertraits.hh>
 #include <dumux/assembly/staggeredfvassembler.hh>
 #include <dumux/assembly/diffmethod.hh> // analytic or numeric differentiation
 
@@ -182,7 +184,7 @@ int main(int argc, char** argv) try
     auto assembler = std::make_shared<Assembler>(problem, gridGeometry, gridVariables);
 
     // We use UMFPack as direct linear solver within each Newton iteration.
-    using LinearSolver = Dumux::UMFPackBackend;
+    using LinearSolver = Dumux::UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>;
     auto linearSolver = std::make_shared<LinearSolver>();
 
     // This example considers a linear problem (incompressible Stokes flow), therefore
diff --git a/examples/liddrivencavity/doc/problem.md b/examples/liddrivencavity/doc/problem.md
index e2d607cd1e93a7df35d066ba7aca60853f87dc0f..a41a2b43c38908a951f54dc7682ea39d9ca542c3 100644
--- a/examples/liddrivencavity/doc/problem.md
+++ b/examples/liddrivencavity/doc/problem.md
@@ -377,7 +377,9 @@ The following files contain the multi-domain Newton solver, the available linear
 systems arising from the staggered-grid discretization.
 
 ```cpp
-#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/linear/istlsolvers.hh>
+#include <dumux/linear/linearalgebratraits.hh>
+#include <dumux/linear/linearsolvertraits.hh>
 #include <dumux/multidomain/fvassembler.hh>
 #include <dumux/multidomain/traits.hh>
 #include <dumux/multidomain/newtonsolver.hh>
@@ -589,7 +591,7 @@ iteration. Here, we use the direct linear solver UMFPack.
 the linear solver
 
 ```cpp
-    using LinearSolver = Dumux::UMFPackBackend;
+    using LinearSolver = Dumux::UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>;
     auto linearSolver = std::make_shared<LinearSolver>();
 ```
 
diff --git a/examples/liddrivencavity/main.cc b/examples/liddrivencavity/main.cc
index 4563115cff95f8d900676eba1130568969d1b76b..ba809863f8248945d205ea03ae1fbf187a990d03 100644
--- a/examples/liddrivencavity/main.cc
+++ b/examples/liddrivencavity/main.cc
@@ -41,7 +41,9 @@
 
 // The following files contain the multi-domain Newton solver, the available linear solver backends and the assembler for the linear
 // systems arising from the staggered-grid discretization.
-#include <dumux/linear/seqsolverbackend.hh>
+#include <dumux/linear/istlsolvers.hh>
+#include <dumux/linear/linearalgebratraits.hh>
+#include <dumux/linear/linearsolvertraits.hh>
 #include <dumux/multidomain/fvassembler.hh>
 #include <dumux/multidomain/traits.hh>
 #include <dumux/multidomain/newtonsolver.hh>
@@ -207,7 +209,7 @@ int main(int argc, char** argv)
                                                  std::make_tuple(momentumGridVariables, massGridVariables),
                                                  couplingManager, timeLoop, xOld);
     // the linear solver
-    using LinearSolver = Dumux::UMFPackBackend;
+    using LinearSolver = Dumux::UMFPackIstlSolver<SeqLinearSolverTraits, LinearAlgebraTraitsFromAssembler<Assembler>>;
     auto linearSolver = std::make_shared<LinearSolver>();
 
     // the non-linear solver