diff --git a/dune/xt/la/container.hh b/dune/xt/la/container.hh
index ca2f5376dac30b3c8e280aed412d18cf48bfa5f0..873c3c1c202d897b55028d136120e6dd2f390525 100644
--- a/dune/xt/la/container.hh
+++ b/dune/xt/la/container.hh
@@ -14,10 +14,10 @@
 #include "container/eigen.hh"
 #include "container/istl.hh"
 
-#include <dune/stuff/common/logging.hh>
+#include <dune/xt/common/logging.hh>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 template <class ScalarType, ChooseBackend backend = default_backend>
@@ -86,7 +86,7 @@ void ensure_parallel_dof_consistency(VectorImp<typename Space::RangeFieldType>&
 }
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_HH
diff --git a/dune/xt/la/container/common.hh b/dune/xt/la/container/common.hh
index 453621ee67d481daf20b7cf0313da843e37e38fe..49859f903d7691e3795fc0b1cff0c1ad788cf26a 100644
--- a/dune/xt/la/container/common.hh
+++ b/dune/xt/la/container/common.hh
@@ -28,7 +28,7 @@
 #include "pattern.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // forwards
@@ -187,7 +187,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (xx.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of x (" << xx.size() << ") does not match the size of this (" << size() << ")!");
     ensure_uniqueness();
     auto& this_ref     = *backend_;
@@ -249,7 +249,7 @@ public:
   virtual ScalarType dot(const ThisType& other) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     return backend_->operator*(*(other.backend_));
   } // ... dot(...)
@@ -272,10 +272,10 @@ public:
   virtual void add(const ThisType& other, ThisType& result) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     BackendType& result_ref = result.backend();
     for (size_t ii = 0; ii < size(); ++ii)
@@ -285,7 +285,7 @@ public:
   virtual void iadd(const ThisType& other) override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() += *(other.backend_);
   } // ... iadd(...)
@@ -293,10 +293,10 @@ public:
   virtual void sub(const ThisType& other, ThisType& result) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     BackendType& result_ref = result.backend();
     for (size_t ii = 0; ii < size(); ++ii)
@@ -306,7 +306,7 @@ public:
   virtual void isub(const ThisType& other) override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() -= *(other.backend_);
   } // ... isub(...)
@@ -450,7 +450,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (!has_equal_shape(xx))
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The shape of xx (" << xx.rows() << "x" << xx.cols() << ") does not match the shape of this ("
                                      << rows()
                                      << "x"
@@ -513,7 +513,7 @@ public:
   void clear_row(const size_t ii)
   {
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     backend()[ii] *= ScalarType(0);
   } // ... clear_row(...)
@@ -521,7 +521,7 @@ public:
   void clear_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     BackendType& backend_ref = backend();
     for (size_t ii = 0; ii < rows(); ++ii)
@@ -531,10 +531,10 @@ public:
   void unit_row(const size_t ii)
   {
     if (ii >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the cols of this (" << cols() << ")!");
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     auto& row = backend()[ii];
     for (size_t jj = 0; jj < cols(); ++jj)
@@ -545,10 +545,10 @@ public:
   void unit_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     if (jj >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the rows of this (" << rows() << ")!");
     ensure_uniqueness();
     for (size_t ii = 0; ii < rows(); ++ii)
@@ -600,7 +600,7 @@ struct MatrixAbstraction<LA::CommonDenseMatrix<T>>
 };
 
 } // namespace Common
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_COMMON_HH
diff --git a/dune/xt/la/container/container-interface.hh b/dune/xt/la/container/container-interface.hh
index d43b4323bb362a7ea92a17c233116fa41c3b13ef..9876ae552a73945b4c4847396e32c0b4ddb8bdf4 100644
--- a/dune/xt/la/container/container-interface.hh
+++ b/dune/xt/la/container/container-interface.hh
@@ -16,12 +16,12 @@
 
 #include <boost/numeric/conversion/cast.hpp>
 
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/type_utils.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/type_traits.hh>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 enum class ChooseBackend
@@ -84,7 +84,7 @@ static Out boost_numeric_cast(const In& in)
   try {
     return boost::numeric_cast<Out>(in);
   } catch (boost::bad_numeric_cast& ee) {
-    DUNE_THROW(Exceptions::wrong_input_given,
+    DUNE_THROW(Common::Exceptions::wrong_input_given,
                "There was an error in boost converting '" << in << "' to '" << Common::Typename<Out>::value() << "': "
                                                           << ee.what());
   }
@@ -209,9 +209,10 @@ namespace internal {
 template <class C>
 struct is_container_helper
 {
-  DSC_has_typedef_initialize_once(Traits) DSC_has_typedef_initialize_once(ScalarType)
+  DXTC_has_typedef_initialize_once(Traits);
+  DXTC_has_typedef_initialize_once(ScalarType);
 
-      static const bool is_candidate = DSC_has_typedef(Traits)<C>::value && DSC_has_typedef(ScalarType)<C>::value;
+  static const bool is_candidate = DXTC_has_typedef(Traits)<C>::value && DXTC_has_typedef(ScalarType)<C>::value;
 }; // class is_container_helper
 
 } // namespace internal
@@ -270,7 +271,7 @@ public:
 }; // class ProvidesDataAccess
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // #ifndef DUNE_XT_LA_CONTAINER_CONTAINER_INTERFACE_HH
diff --git a/dune/xt/la/container/eigen/base.hh b/dune/xt/la/container/eigen/base.hh
index 94e31642907b1e89b3d5844d761e0e3a984fe90e..bec3307ee5a97f7f81e1fa0bf065a8e26f43027d 100644
--- a/dune/xt/la/container/eigen/base.hh
+++ b/dune/xt/la/container/eigen/base.hh
@@ -16,24 +16,23 @@
 #include <vector>
 #include <complex>
 
-#include <dune/stuff/common/disable_warnings.hh>
+#include <dune/xt/common/disable_warnings.hh>
 #if HAVE_EIGEN
 #include <Eigen/Core>
 #endif
-#include <dune/stuff/common/reenable_warnings.hh>
+#include <dune/xt/common/reenable_warnings.hh>
 
 #include <dune/common/typetraits.hh>
 #include <dune/common/ftraits.hh>
 
-#include <dune/stuff/aliases.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/float_cmp.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/float_cmp.hh>
 
-#include "dune/stuff/la/container/interfaces.hh"
+#include "dune/xt/la/container/interfaces.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 template <class ScalarImp>
@@ -111,7 +110,7 @@ public:
   void axpy(const ScalarType& alpha, const EigenBaseVector<T, ScalarType>& xx)
   {
     if (xx.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of xx (" << xx.size() << ") does not match the size of this (" << size() << ")!");
     backend() += alpha * xx.backend();
   } // ... axpy(...)
@@ -186,7 +185,7 @@ public:
   ScalarType dot(const EigenBaseVector<T, ScalarType>& other) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     return backend_->transpose() * *(other.backend_);
   } // ... dot(...)
@@ -215,10 +214,10 @@ public:
   void add(const EigenBaseVector<T1, ScalarType>& other, EigenBaseVector<T2, ScalarType>& result) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     result.backend() = *backend_ + *(other.backend_);
   } // ... add(...)
@@ -232,7 +231,7 @@ public:
   void iadd(const EigenBaseVector<T, ScalarType>& other)
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() += *(other.backend_);
   } // ... iadd(...)
@@ -246,10 +245,10 @@ public:
   void sub(const EigenBaseVector<T1, ScalarType>& other, EigenBaseVector<T2, ScalarType>& result) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     result.backend() = *backend_ - *(other.backend_);
   } // ... sub(...)
@@ -263,7 +262,7 @@ public:
   void isub(const EigenBaseVector<T, ScalarType>& other)
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() -= *(other.backend_);
   } // ... isub(...)
@@ -312,7 +311,7 @@ class EigenBaseVector
 #endif // HAVE_EIGEN
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_EIGEN_BASE_HH
diff --git a/dune/xt/la/container/eigen/dense.hh b/dune/xt/la/container/eigen/dense.hh
index 82112cb33da565bbffbc59e601ead680d7fc4b6e..95863fa12fd958873da3ee5a964f0a0bca4d2fa2 100644
--- a/dune/xt/la/container/eigen/dense.hh
+++ b/dune/xt/la/container/eigen/dense.hh
@@ -19,27 +19,26 @@
 
 #include <boost/numeric/conversion/cast.hpp>
 
-#include <dune/stuff/common/disable_warnings.hh>
+#include <dune/xt/common/disable_warnings.hh>
 #if HAVE_EIGEN
 #include <Eigen/Core>
 #endif
-#include <dune/stuff/common/reenable_warnings.hh>
+#include <dune/xt/common/reenable_warnings.hh>
 
 #include <dune/common/typetraits.hh>
 #include <dune/common/densematrix.hh>
 #include <dune/common/ftraits.hh>
 
-#include <dune/stuff/aliases.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/crtp.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/crtp.hh>
 
-#include "dune/stuff/la/container/interfaces.hh"
-#include "dune/stuff/la/container/pattern.hh"
+#include "dune/xt/la/container/interfaces.hh"
+#include "dune/xt/la/container/pattern.hh"
 
 #include "base.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // forwards
@@ -455,7 +454,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (!has_equal_shape(xx))
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The shape of xx (" << xx.rows() << "x" << xx.cols() << ") does not match the shape of this ("
                                      << rows()
                                      << "x"
@@ -514,7 +513,7 @@ public:
   void clear_row(const size_t ii)
   {
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     ensure_uniqueness();
     for (size_t jj = 0; jj < cols(); ++jj)
@@ -524,7 +523,7 @@ public:
   void clear_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     ensure_uniqueness();
     for (size_t ii = 0; ii < rows(); ++ii)
@@ -534,10 +533,10 @@ public:
   void unit_row(const size_t ii)
   {
     if (ii >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the cols of this (" << cols() << ")!");
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     ensure_uniqueness();
     for (size_t jj = 0; jj < cols(); ++jj)
@@ -548,10 +547,10 @@ public:
   void unit_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     if (jj >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the rows of this (" << rows() << ")!");
     ensure_uniqueness();
     for (size_t ii = 0; ii < rows(); ++ii)
@@ -631,7 +630,7 @@ struct MatrixAbstraction<LA::EigenDenseMatrix<T>> : public LA::internal::MatrixA
 #endif // HAVE_EIGEN
 
 } // namespace Common
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_EIGEN_DENSE_HH
diff --git a/dune/xt/la/container/eigen/sparse.hh b/dune/xt/la/container/eigen/sparse.hh
index 1b7906bf3e3ff7c7f1ce7a23d9210f09a302f77b..68649bc9c2268fa0bff5e068176cf05143f03ed4 100644
--- a/dune/xt/la/container/eigen/sparse.hh
+++ b/dune/xt/la/container/eigen/sparse.hh
@@ -18,27 +18,27 @@
 
 #include <boost/numeric/conversion/cast.hpp>
 
-#include <dune/stuff/common/disable_warnings.hh>
+#include <dune/xt/common/disable_warnings.hh>
 #if HAVE_EIGEN
 #include <Eigen/SparseCore>
 #endif
-#include <dune/stuff/common/reenable_warnings.hh>
+#include <dune/xt/common/reenable_warnings.hh>
 
 #include <dune/common/typetraits.hh>
 #include <dune/common/ftraits.hh>
 
-#include <dune/stuff/aliases.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/float_cmp.hh>
+#include <dune/xt/common/math.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/float_cmp.hh>
 
-#include "dune/stuff/la/container/interfaces.hh"
-#include "dune/stuff/la/container/pattern.hh"
+#include "dune/xt/la/container/interfaces.hh"
+#include "dune/xt/la/container/pattern.hh"
 
 #include "dense.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // forwards
@@ -98,7 +98,7 @@ public:
                                              internal::boost_numeric_cast<EIGEN_size_t>(cc));
     if (rr > 0 && cc > 0) {
       if (size_t(pattern_in.size()) != rr)
-        DUNE_THROW(Exceptions::shapes_do_not_match,
+        DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                    "The size of the pattern (" << pattern_in.size() << ") does not match the number of rows of this ("
                                                << rr
                                                << ")!");
@@ -108,7 +108,7 @@ public:
         for (auto& column : columns) {
 #ifndef NDEBUG
           if (column >= cc)
-            DUNE_THROW(Exceptions::shapes_do_not_match,
+            DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                        "The size of row " << row << " of the pattern does not match the number of columns of this ("
                                           << cc
                                           << ")!");
@@ -150,7 +150,7 @@ public:
         for (typename BackendType::InnerIterator row_it(mat, row); row_it; ++row_it) {
           const EIGEN_size_t col = row_it.col();
           const auto val = mat.coeff(row, col);
-          if (Stuff::Common::FloatCmp::ne<Stuff::Common::FloatCmp::Style::absolute>(val, zero, eps))
+          if (Common::FloatCmp::ne<Common::FloatCmp::Style::absolute>(val, zero, eps))
             triplets.emplace_back(row, col, val);
         }
       }
@@ -220,7 +220,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (!has_equal_shape(xx))
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The shape of xx (" << xx.rows() << "x" << xx.cols() << ") does not match the shape of this ("
                                      << rows()
                                      << "x"
@@ -280,7 +280,7 @@ public:
   void clear_row(const size_t ii)
   {
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     backend().row(internal::boost_numeric_cast<EIGEN_size_t>(ii)) *= ScalarType(0);
   }
@@ -288,7 +288,7 @@ public:
   void clear_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     ensure_uniqueness();
     for (size_t row = 0; internal::boost_numeric_cast<EIGEN_size_t>(row) < backend_->outerSize(); ++row) {
@@ -309,13 +309,13 @@ public:
   void unit_row(const size_t ii)
   {
     if (ii >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the cols of this (" << cols() << ")!");
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     if (!these_are_valid_indices(ii, ii))
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Diagonal entry (" << ii << ", " << ii << ") is not contained in the sparsity pattern!");
     backend().row(internal::boost_numeric_cast<EIGEN_size_t>(ii)) *= ScalarType(0);
     set_entry(ii, ii, ScalarType(1));
@@ -324,10 +324,10 @@ public:
   void unit_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     if (jj >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the rows of this (" << rows() << ")!");
     ensure_uniqueness();
     for (size_t row = 0; internal::boost_numeric_cast<EIGEN_size_t>(row) < backend_->outerSize(); ++row) {
@@ -355,7 +355,7 @@ public:
     typedef typename BackendType::InnerIterator InnerIterator;
     for (EIGEN_size_t ii = 0; ii < backend_->outerSize(); ++ii) {
       for (InnerIterator it(*backend_, ii); it; ++it) {
-        if (DSC::isnan(std::real(it.value())) || DSC::isnan(std::imag(it.value())) || DSC::isinf(std::abs(it.value())))
+        if (Common::isnan(it.value()) || Common::isinf(it.value()))
           return false;
       }
     }
@@ -454,7 +454,7 @@ struct MatrixAbstraction<LA::EigenRowMajorSparseMatrix<T>>
 #endif // HAVE_EIGEN
 
 } // namespace Common
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_EIGEN_SPARSE_HH
diff --git a/dune/xt/la/container/istl.hh b/dune/xt/la/container/istl.hh
index 7115a25b4d6cc4721d66e6bc5660d06721037c92..3aa0da18f16aac7703343a8f49270af8aba9bee5 100644
--- a/dune/xt/la/container/istl.hh
+++ b/dune/xt/la/container/istl.hh
@@ -26,15 +26,15 @@
 #include <dune/istl/bcrsmatrix.hh>
 #endif
 
-#include <dune/stuff/common/float_cmp.hh>
-#include <dune/stuff/common/profiler.hh>
-#include <dune/stuff/common/math.hh>
+#include <dune/xt/common/float_cmp.hh>
+#include <dune/xt/common/profiler.hh>
+#include <dune/xt/common/math.hh>
 
 #include "interfaces.hh"
 #include "pattern.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // forward
@@ -201,7 +201,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (xx.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of x (" << xx.size() << ") does not match the size of this (" << size() << ")!");
     backend().axpy(alpha, *(xx.backend_));
   }
@@ -260,7 +260,7 @@ public:
   virtual ScalarType dot(const ThisType& other) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     return backend_->dot(*(other.backend_));
   } // ... dot(...)
@@ -283,10 +283,10 @@ public:
   virtual void add(const ThisType& other, ThisType& result) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     result.backend() = *(backend_);
     result.backend() += *(other.backend_);
@@ -295,7 +295,7 @@ public:
   virtual ThisType add(const ThisType& other) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     ThisType result = copy();
     result.backend_->operator+=(*(other.backend_));
@@ -305,7 +305,7 @@ public:
   virtual void iadd(const ThisType& other) override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() += *(other.backend_);
   } // ... iadd(...)
@@ -313,10 +313,10 @@ public:
   virtual void sub(const ThisType& other, ThisType& result) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     result.backend() = *(backend_);
     result.backend() -= *(other.backend_);
@@ -325,7 +325,7 @@ public:
   virtual ThisType sub(const ThisType& other) const override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     ThisType result = copy();
     result.backend_->operator-=(*(other.backend_));
@@ -335,7 +335,7 @@ public:
   virtual void isub(const ThisType& other) override final
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     backend() -= (*(other.backend_));
   } // ... isub(...)
@@ -375,7 +375,7 @@ public:
 
   static std::string static_id()
   {
-    return "stuff.la.container.istl.istlrowmajorsparsematrix";
+    return "xt.la.container.istl.istlrowmajorsparsematrix";
   }
 
   /**
@@ -384,7 +384,7 @@ public:
   IstlRowMajorSparseMatrix(const size_t rr, const size_t cc, const SparsityPatternDefault& patt)
   {
     if (patt.size() != rr)
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of the pattern (" << patt.size() << ") does not match the number of rows of this (" << rows()
                                              << ")!");
     build_sparse_matrix(rr, cc, patt);
@@ -478,7 +478,7 @@ public:
   void axpy(const ScalarType& alpha, const ThisType& xx)
   {
     if (!has_equal_shape(xx))
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The shape of xx (" << xx.rows() << "x" << xx.cols() << ") does not match the shape of this ("
                                      << rows()
                                      << "x"
@@ -508,7 +508,7 @@ public:
 
   inline void mv(const IstlDenseVector<ScalarType>& xx, IstlDenseVector<ScalarType>& yy) const
   {
-    DUNE_STUFF_PROFILE_SCOPE(static_id() + ".mv");
+    DUNE_XT_COMMON_PROFILE_SCOPE(static_id() + ".mv");
     backend_->mv(*(xx.backend_), yy.backend());
   }
 
@@ -537,7 +537,7 @@ public:
   void clear_row(const size_t ii)
   {
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     backend()[ii] *= ScalarType(0);
   } // ... clear_row(...)
@@ -545,7 +545,7 @@ public:
   void clear_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     ensure_uniqueness();
     for (size_t ii = 0; ii < rows(); ++ii) {
@@ -559,13 +559,13 @@ public:
   void unit_row(const size_t ii)
   {
     if (ii >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the cols of this (" << cols() << ")!");
     if (ii >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given ii (" << ii << ") is larger than the rows of this (" << rows() << ")!");
     if (!backend_->exists(ii, ii))
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Diagonal entry (" << ii << ", " << ii << ") is not contained in the sparsity pattern!");
     ensure_uniqueness();
     backend_->operator[](ii) *= ScalarType(0);
@@ -575,13 +575,13 @@ public:
   void unit_col(const size_t jj)
   {
     if (jj >= cols())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the cols of this (" << cols() << ")!");
     if (jj >= rows())
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Given jj (" << jj << ") is larger than the rows of this (" << rows() << ")!");
     if (!backend_->exists(jj, jj))
-      DUNE_THROW(Exceptions::index_out_of_range,
+      DUNE_THROW(Common::Exceptions::index_out_of_range,
                  "Diagonal entry (" << jj << ", " << jj << ") is not contained in the sparsity pattern!");
     ensure_uniqueness();
     for (size_t ii = 0; (ii < rows()) && (ii != jj); ++ii) {
@@ -649,7 +649,7 @@ public:
 private:
   void build_sparse_matrix(const size_t rr, const size_t cc, const SparsityPatternDefault& patt)
   {
-    DUNE_STUFF_PROFILE_SCOPE(static_id() + ".build");
+    DUNE_XT_COMMON_PROFILE_SCOPE(static_id() + ".build");
     backend_ = std::make_shared<BackendType>(rr, cc, BackendType::random);
     for (size_t ii = 0; ii < patt.size(); ++ii)
       backend_->setrowsize(ii, patt.inner(ii).size());
@@ -769,7 +769,7 @@ struct MatrixAbstraction<LA::IstlRowMajorSparseMatrix<T>>
 #endif // HAVE_DUNE_ISTL
 
 } // namespace Common
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_ISTL_HH
diff --git a/dune/xt/la/container/matrix-interface.hh b/dune/xt/la/container/matrix-interface.hh
index 97e3be60604bc019d6ee8b3e98aeac6533cddb8f..253d38e7208e673ed244a5dedd7eb53c2ca88437 100644
--- a/dune/xt/la/container/matrix-interface.hh
+++ b/dune/xt/la/container/matrix-interface.hh
@@ -18,18 +18,18 @@
 
 #include <dune/common/ftraits.hh>
 
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/float_cmp.hh>
-#include <dune/stuff/common/matrix.hh>
-#include <dune/stuff/common/type_utils.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/float_cmp.hh>
+#include <dune/xt/common/matrix.hh>
+#include <dune/xt/common/type_traits.hh>
 
 #include "container-interface.hh"
 #include "pattern.hh"
 #include "vector-interface.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 /**
@@ -239,9 +239,10 @@ namespace internal {
 template <class M>
 struct is_matrix_helper
 {
-  DSC_has_typedef_initialize_once(Traits) DSC_has_typedef_initialize_once(ScalarType)
+  DXTC_has_typedef_initialize_once(Traits);
+  DXTC_has_typedef_initialize_once(ScalarType);
 
-      static const bool is_candidate = DSC_has_typedef(Traits)<M>::value && DSC_has_typedef(ScalarType)<M>::value;
+  static const bool is_candidate = DXTC_has_typedef(Traits)<M>::value && DXTC_has_typedef(ScalarType)<M>::value;
 }; // class is_matrix_helper
 
 } // namespace internal
@@ -308,7 +309,7 @@ struct MatrixAbstractionBase
 
 } // namespace internal
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_MATRIX_INTERFACE_HH
diff --git a/dune/xt/la/container/pattern.cc b/dune/xt/la/container/pattern.cc
index d5d15e013a8522da492248a6c0a1731939b35527..184ce8310806d04887697291273c23b2fb552b34 100644
--- a/dune/xt/la/container/pattern.cc
+++ b/dune/xt/la/container/pattern.cc
@@ -13,7 +13,7 @@
 #include <algorithm>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // ================================
@@ -82,5 +82,5 @@ void SparsityPatternDefault::sort()
 }
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
diff --git a/dune/xt/la/container/pattern.hh b/dune/xt/la/container/pattern.hh
index 3f47f9d54739ec8e696499c699b6eca02b72a1b1..b5cc6348fe130e1cc3913f4b58b2feea04074bb3 100644
--- a/dune/xt/la/container/pattern.hh
+++ b/dune/xt/la/container/pattern.hh
@@ -15,7 +15,7 @@
 #include <set>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 class SparsityPatternDefault
@@ -54,7 +54,7 @@ private:
 }; // class SparsityPatternDefault
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_PATTERN_HH
diff --git a/dune/xt/la/container/vector-interface-internal.hh b/dune/xt/la/container/vector-interface-internal.hh
index af1e44e32d76a1f3aa095be3147d1d3e241f16c0..96cc0e3508750bb75c57499a90fdaf9cc647bb9a 100644
--- a/dune/xt/la/container/vector-interface-internal.hh
+++ b/dune/xt/la/container/vector-interface-internal.hh
@@ -13,12 +13,12 @@
 #include <iterator>
 #include <type_traits>
 
-#include <dune/stuff/common/type_utils.hh>
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/exceptions.hh>
+#include <dune/xt/common/type_traits.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/exceptions.hh>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 // forward
@@ -77,7 +77,7 @@ public:
   const ScalarType& operator*() const
   {
     if (end_)
-      DUNE_THROW(Exceptions::you_are_using_this_wrong, "This is the end!");
+      DUNE_THROW(Common::Exceptions::you_are_using_this_wrong, "This is the end!");
     return const_holder_->element[position_];
   }
 
@@ -123,7 +123,7 @@ public:
   ScalarType& operator*()
   {
     if (this->end_)
-      DUNE_THROW(Exceptions::you_are_using_this_wrong, "This is the end!");
+      DUNE_THROW(Common::Exceptions::you_are_using_this_wrong, "This is the end!");
     return holder_->element[this->position_];
   } // ... operator*()
 
@@ -133,7 +133,7 @@ private:
 
 } // namespace internal
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_VECTOR_INTERFACE_INTERNAL_HH
diff --git a/dune/xt/la/container/vector-interface.hh b/dune/xt/la/container/vector-interface.hh
index 5816517d87213fc7527d1c71dd398b354dfa1a57..aa15d77cb82cd3dffa996013ff3d4b180e3debe2 100644
--- a/dune/xt/la/container/vector-interface.hh
+++ b/dune/xt/la/container/vector-interface.hh
@@ -19,18 +19,18 @@
 
 #include <dune/common/ftraits.hh>
 
-#include <dune/stuff/common/crtp.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/float_cmp.hh>
-#include <dune/stuff/common/type_utils.hh>
-#include <dune/stuff/common/vector.hh>
-#include <dune/stuff/common/math.hh>
+#include <dune/xt/common/crtp.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/float_cmp.hh>
+#include <dune/xt/common/type_traits.hh>
+#include <dune/xt/common/vector.hh>
+#include <dune/xt/common/math.hh>
 
 #include "container-interface.hh"
 #include "vector-interface-internal.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 /**
@@ -191,17 +191,16 @@ public:
    *  \param  other   A vector of same dimension to compare with.
    *  \param  epsilon See Dune::FloatCmp.
    *  \return Truth value of the comparison.
-   *  \see    Dune::Stuff::Common::FloatCmp
+   *  \see    Dune::XT::Common::FloatCmp
    *  \note   If you override this method please use exceptions instead of assertions (for the python bindings).
    */
-  virtual bool
-  almost_equal(const derived_type& other,
-               const ScalarType epsilon = Stuff::Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const
+  virtual bool almost_equal(const derived_type& other,
+                            const ScalarType epsilon = Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
-    return Stuff::Common::FloatCmp::eq(this->as_imp(), other, epsilon);
+    return Common::FloatCmp::eq(this->as_imp(), other, epsilon);
   } // ... almost_equal(...)
 
   /**
@@ -210,16 +209,16 @@ public:
    *  \param  other   A vector of same dimension to compare with.
    *  \param  epsilon See Dune::FloatCmp.
    *  \return Truth value of the comparison.
-   *  \see    Dune::Stuff::Common::FloatCmp
+   *  \see    Dune::XT::Common::FloatCmp
    */
   template <class T>
   bool almost_equal(const VectorInterface<T>& other,
-                    const ScalarType epsilon = Stuff::Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const
+                    const ScalarType epsilon = Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
-    return Stuff::Common::FloatCmp::eq(this->as_imp(), other.as_imp(), epsilon);
+    return Common::FloatCmp::eq(this->as_imp(), other.as_imp(), epsilon);
   } // ... almost_equal(...)
 
   /**
@@ -231,7 +230,7 @@ public:
   virtual ScalarType dot(const derived_type& other) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     ScalarType result = 0;
     for (size_t ii = 0; ii < size(); ++ii)
@@ -293,10 +292,10 @@ public:
   virtual void add(const derived_type& other, derived_type& result) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     for (size_t ii = 0; ii < size(); ++ii)
       result.set_entry(ii, get_entry_ref(ii) + other.get_entry_ref(ii));
@@ -324,7 +323,7 @@ public:
   virtual void iadd(const derived_type& other)
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     for (size_t ii = 0; ii < size(); ++ii)
       set_entry(ii, get_entry_ref(ii) + other.get_entry_ref(ii));
@@ -339,10 +338,10 @@ public:
   virtual void sub(const derived_type& other, derived_type& result) const
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     if (result.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of result (" << result.size() << ") does not match the size of this (" << size() << ")!");
     for (size_t ii = 0; ii < size(); ++ii)
       result.set_entry(ii, get_entry_ref(ii) - other.get_entry_ref(ii));
@@ -369,7 +368,7 @@ public:
   virtual void isub(const derived_type& other)
   {
     if (other.size() != size())
-      DUNE_THROW(Exceptions::shapes_do_not_match,
+      DUNE_THROW(Common::Exceptions::shapes_do_not_match,
                  "The size of other (" << other.size() << ") does not match the size of this (" << size() << ")!");
     for (size_t ii = 0; ii < size(); ++ii)
       set_entry(ii, get_entry_ref(ii) - other.get_entry_ref(ii));
@@ -520,9 +519,10 @@ namespace internal {
 template <class V>
 struct is_vector_helper
 {
-  DSC_has_typedef_initialize_once(Traits) DSC_has_typedef_initialize_once(ScalarType)
+  DXTC_has_typedef_initialize_once(Traits);
+  DXTC_has_typedef_initialize_once(ScalarType);
 
-      static const bool is_candidate = DSC_has_typedef(Traits)<V>::value && DSC_has_typedef(ScalarType)<V>::value;
+  static const bool is_candidate = DXTC_has_typedef(Traits)<V>::value && DXTC_has_typedef(ScalarType)<V>::value;
 }; // class is_vector_helper
 
 } // namespace internal
@@ -583,7 +583,7 @@ std::ostream& operator<<(std::ostream& out, const VectorInterface<T, S>& vector)
 } // ... operator<<(...)
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_CONTAINER_VECTOR_INTERFACE_HH
diff --git a/dune/xt/la/solver.hh b/dune/xt/la/solver.hh
index 8cde2be1e90b791342b9ad647ae2645c4d150aa3..b2db7ecf4c69b03ace35983e239b81363c9840f1 100644
--- a/dune/xt/la/solver.hh
+++ b/dune/xt/la/solver.hh
@@ -13,30 +13,30 @@
 #include <string>
 #include <vector>
 
-#include <dune/stuff/common/type_utils.hh>
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/configuration.hh>
-#include <dune/stuff/common/parallel/helper.hh>
+#include <dune/xt/common/type_traits.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/configuration.hh>
+#include <dune/xt/common/parallel/helper.hh>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
+namespace LA {
 namespace Exceptions {
 
-class linear_solver_failed_bc_data_did_not_fulfill_requirements : public linear_solver_failed
+class linear_solver_failed_bc_data_did_not_fulfill_requirements : public Common::Exceptions::linear_solver_failed
 {
 };
-class linear_solver_failed_bc_it_did_not_converge : public linear_solver_failed
+class linear_solver_failed_bc_it_did_not_converge : public Common::Exceptions::linear_solver_failed
 {
 };
-class linear_solver_failed_bc_it_was_not_set_up_correctly : public linear_solver_failed
+class linear_solver_failed_bc_it_was_not_set_up_correctly : public Common::Exceptions::linear_solver_failed
 {
 };
-class linear_solver_failed_bc_the_solution_does_not_solve_the_system : public linear_solver_failed
+class linear_solver_failed_bc_the_solution_does_not_solve_the_system : public Common::Exceptions::linear_solver_failed
 {
 };
 
 } // namespace Exceptions
-namespace LA {
 namespace internal {
 
 static const constexpr size_t max_size_to_print = 5;
@@ -52,7 +52,7 @@ public:
       std::stringstream ss;
       for (auto opt : opts)
         ss << opt << " ";
-      DUNE_THROW(Exceptions::configuration_error,
+      DUNE_THROW(Common::Exceptions::configuration_error,
                  "Given type '" << type << "' not supported (see below for a list of supported ones). "
                                 << "Call options() first!\n"
                                 << ss.str());
@@ -132,7 +132,7 @@ public:
 }; // class Solver
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #include "solver/common.hh"
diff --git a/dune/xt/la/solver/common.hh b/dune/xt/la/solver/common.hh
index 398e4fc9967104162ff7bed3b9b7a3838a0b6442..b4fa711c2f3568fa48a1a8420e7e33be4551aa69 100644
--- a/dune/xt/la/solver/common.hh
+++ b/dune/xt/la/solver/common.hh
@@ -17,15 +17,15 @@
 #include <sstream>
 #include <cmath>
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/configuration.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/configuration.hh>
 
-#include <dune/stuff/la/container/common.hh>
+#include <dune/xt/la/container/common.hh>
 
 #include "../solver.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 template <class S, class CommunicatorType>
@@ -70,7 +70,7 @@ public:
   void apply(const CommonDenseVector<S>& rhs, CommonDenseVector<S>& solution, const Common::Configuration& opts) const
   {
     if (!opts.has_key("type"))
-      DUNE_THROW(Exceptions::configuration_error,
+      DUNE_THROW(Common::Exceptions::configuration_error,
                  "Given options (see below) need to have at least the key 'type' set!\n\n" << opts);
     const auto type = opts.get<std::string>("type");
     SolverUtils::check_given(type, types());
@@ -92,7 +92,7 @@ public:
       matrix_.mv(solution, tmp);
       tmp -= rhs;
       const R sup_norm = tmp.sup_norm();
-      if (sup_norm > post_check_solves_system_threshold || DSC::isnan(sup_norm) || DSC::isinf(sup_norm))
+      if (sup_norm > post_check_solves_system_threshold || Common::isnan(sup_norm) || Common::isinf(sup_norm))
         DUNE_THROW(Exceptions::linear_solver_failed_bc_the_solution_does_not_solve_the_system,
                    "The computed solution does not solve the system (although the dune-common backend "
                        << "reported no error) and you requested checking (see options below)! "
@@ -111,7 +111,7 @@ private:
 }; // class Solver< CommonDenseMatrix< ... > >
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_SOLVER_COMMON_HH
diff --git a/dune/xt/la/solver/eigen.hh b/dune/xt/la/solver/eigen.hh
index 1336e5d79cbd0773554ed4b9d81cd6661ff409ff..358ecdb027ba656e4b9bdebdb4f6750bfeb6a2bf 100644
--- a/dune/xt/la/solver/eigen.hh
+++ b/dune/xt/la/solver/eigen.hh
@@ -18,7 +18,7 @@
 #include <cmath>
 #include <complex>
 
-#include <dune/stuff/common/disable_warnings.hh>
+#include <dune/xt/common/disable_warnings.hh>
 #if HAVE_EIGEN
 #include <Eigen/Dense>
 #include <Eigen/SparseCore>
@@ -35,16 +35,16 @@
 //#     include <Eigen/SuperLUSupport>
 //#   endif
 #endif // HAVE_EIGEN
-#include <dune/stuff/common/reenable_warnings.hh>
+#include <dune/xt/common/reenable_warnings.hh>
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/configuration.hh>
-#include <dune/stuff/la/container/eigen.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/configuration.hh>
+#include <dune/xt/la/container/eigen.hh>
 
 #include "../solver.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 #if HAVE_EIGEN
@@ -106,7 +106,7 @@ public:
              const Common::Configuration& opts) const
   {
     if (!opts.has_key("type"))
-      DUNE_THROW(Exceptions::configuration_error,
+      DUNE_THROW(Common::Exceptions::configuration_error,
                  "Given options (see below) need to have at least the key 'type' set!\n\n" << opts);
     const auto type = opts.get<std::string>("type");
     SolverUtils::check_given(type, types());
@@ -176,7 +176,7 @@ public:
     else if (type == "lu.partialpiv")
       solution.backend() = matrix_.backend().partialPivLu().solve(rhs.backend());
     else
-      DUNE_THROW(Exceptions::internal_error,
+      DUNE_THROW(Common::Exceptions::internal_error,
                  "Given type '" << type << "' is not supported, although it was reported by types()!");
     // check
     if (check_for_inf_nan)
@@ -200,7 +200,7 @@ public:
       auto tmp = rhs.copy();
       tmp.backend() = matrix_.backend() * solution.backend() - rhs.backend();
       const R sup_norm = tmp.sup_norm();
-      if (sup_norm > post_check_solves_system_threshold || DSC::isnan(sup_norm) || DSC::isinf(sup_norm)) {
+      if (sup_norm > post_check_solves_system_threshold || Common::isnan(sup_norm) || Common::isinf(sup_norm)) {
         std::stringstream msg;
         msg << "The computed solution does not solve the system (although the eigen backend reported "
             << "'Success') and you requested checking (see options below)!\n"
@@ -326,7 +326,7 @@ public:
              const Common::Configuration& opts) const
   {
     if (!opts.has_key("type"))
-      DUNE_THROW(Exceptions::configuration_error,
+      DUNE_THROW(Common::Exceptions::configuration_error,
                  "Given options (see below) need to have at least the key 'type' set!\n\n" << opts);
     const auto type = opts.get<std::string>("type");
     SolverUtils::check_given(type, types());
@@ -338,8 +338,8 @@ public:
       typedef typename MatrixType::BackendType::InnerIterator InnerIterator;
       for (EIGEN_size_t ii = 0; ii < matrix_.backend().outerSize(); ++ii) {
         for (InnerIterator it(matrix_.backend(), ii); it; ++it) {
-          if (DSC::isnan(std::real(it.value())) || DSC::isnan(std::imag(it.value()))
-              || DSC::isinf(std::abs(it.value())))
+          if (Common::isnan(std::real(it.value())) || Common::isnan(std::imag(it.value()))
+              || Common::isinf(std::abs(it.value())))
             DUNE_THROW(Exceptions::linear_solver_failed_bc_data_did_not_fulfill_requirements,
                        "Given matrix contains inf or nan and you requested checking (see options below)!\n"
                            << "If you want to disable this check, set 'check_for_inf_nan = 0' in the options.\n\n"
@@ -513,7 +513,7 @@ public:
       //      info = solver.info();
       //#endif // HAVE_SUPERLU
     } else
-      DUNE_THROW(Exceptions::internal_error,
+      DUNE_THROW(Common::Exceptions::internal_error,
                  "Given type '" << type << "' is not supported, although it was reported by types()!");
     // handle eigens info
     if (info != ::Eigen::Success) {
@@ -539,9 +539,9 @@ public:
                        << "Those were the given options:\n\n"
                        << opts);
       else
-        DUNE_THROW(Exceptions::internal_error,
+        DUNE_THROW(Common::Exceptions::internal_error,
                    "The eigen backend reported an unknown status!\n"
-                       << "Please report this to the dune-stuff developers!");
+                       << "Please report this to the dune-xt developers!");
     }
     // check
     if (check_for_inf_nan)
@@ -561,7 +561,7 @@ public:
       auto tmp = rhs.copy();
       tmp.backend() = matrix_.backend() * solution.backend() - rhs.backend();
       const R sup_norm = tmp.sup_norm();
-      if (sup_norm > post_check_solves_system_threshold || DSC::isnan(sup_norm) || DSC::isinf(sup_norm))
+      if (sup_norm > post_check_solves_system_threshold || Common::isnan(sup_norm) || Common::isinf(sup_norm))
         DUNE_THROW(Exceptions::linear_solver_failed_bc_the_solution_does_not_solve_the_system,
                    "The computed solution does not solve the system (although the eigen backend reported "
                        << "'Success') and you requested checking (see options below)!\n"
@@ -596,7 +596,7 @@ class Solver<EigenRowMajorSparseMatrix<S>>
 #endif // HAVE_EIGEN
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_SOLVER_EIGEN_HH
diff --git a/dune/xt/la/solver/fasp.hh b/dune/xt/la/solver/fasp.hh
index 7632c47024d32edbc7d48ed36ada039aeee1a131..42176349b9ed8706f275937f56f96a327975e6d9 100644
--- a/dune/xt/la/solver/fasp.hh
+++ b/dune/xt/la/solver/fasp.hh
@@ -16,22 +16,22 @@ extern "C" {
 #include "fasp_functs.h"
 }
 
-#include <dune/stuff/la/container/eigen.hh>
+#include <dune/xt/la/container/eigen.hh>
 
 #include "interface.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 template <class ElementImp>
-class AmgSolver<Dune::Stuff::LA::EigenRowMajorSparseMatrix<ElementImp>, Dune::Stuff::LA::EigenDenseVector<ElementImp>>
-    : public SolverInterface<Dune::Stuff::LA::EigenRowMajorSparseMatrix<ElementImp>,
-                             Dune::Stuff::LA::EigenDenseVector<ElementImp>>
+class AmgSolver<Dune::XT::LA::EigenRowMajorSparseMatrix<ElementImp>, Dune::XT::LA::EigenDenseVector<ElementImp>>
+    : public SolverInterface<Dune::XT::LA::EigenRowMajorSparseMatrix<ElementImp>,
+                             Dune::XT::LA::EigenDenseVector<ElementImp>>
 {
 public:
-  typedef SolverInterface<Dune::Stuff::LA::EigenRowMajorSparseMatrix<ElementImp>,
-                          Dune::Stuff::LA::EigenDenseVector<ElementImp>> BaseType;
+  typedef SolverInterface<Dune::XT::LA::EigenRowMajorSparseMatrix<ElementImp>,
+                          Dune::XT::LA::EigenDenseVector<ElementImp>> BaseType;
 
   typedef typename BaseType::MatrixType MatrixType;
   typedef typename BaseType::VectorType VectorType;
@@ -360,7 +360,7 @@ private:
 }; // class AmgSolver
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // HAVE_EIGEN
diff --git a/dune/xt/la/solver/istl.hh b/dune/xt/la/solver/istl.hh
index 92203d823701efb32c79d57a9bf3ccd4a140197d..316e9519e594786bb018c1891f32a964004816b6 100644
--- a/dune/xt/la/solver/istl.hh
+++ b/dune/xt/la/solver/istl.hh
@@ -22,18 +22,17 @@
 #include <dune/istl/superlu.hh>
 #endif // HAVE_DUNE_ISTL
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/configuration.hh>
-#include <dune/stuff/common/memory.hh>
-#include <dune/stuff/la/container/istl.hh>
-#include <dune/stuff/la/solver/istl_amg.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/configuration.hh>
+#include <dune/xt/common/memory.hh>
 
-#include <dune/common/version.hh>
+#include <dune/xt/la/container/istl.hh>
 
+#include "istl/amg.hh"
 #include "../solver.hh"
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 #if HAVE_DUNE_ISTL
@@ -161,7 +160,7 @@ public:
       return general_opts;
 #endif // !HAVE_MPI && HAVE_SUPERLU
     } else
-      DUNE_THROW(Exceptions::internal_error, "Given solver type '" << tp << "' has no default options");
+      DUNE_THROW(Common::Exceptions::internal_error, "Given solver type '" << tp << "' has no default options");
     return Common::Configuration();
   } // ... options(...)
 
@@ -200,7 +199,7 @@ public:
 
     try {
       if (!opts.has_key("type"))
-        DUNE_THROW(Exceptions::configuration_error,
+        DUNE_THROW(Common::Exceptions::configuration_error,
                    "Given options (see below) need to have at least the key 'type' set!\n\n" << opts);
       const auto type = opts.get<std::string>("type");
       SolverUtils::check_given(type, types());
@@ -268,7 +267,7 @@ public:
         solver.apply(solution.backend(), writable_rhs.backend(), solver_result);
 #endif // !HAVE_MPI && HAVE_SUPERLU
       } else
-        DUNE_THROW(Exceptions::internal_error,
+        DUNE_THROW(Common::Exceptions::internal_error,
                    "Given type '" << type << "' is not supported, although it was reported by types()!");
       if (!solver_result.converged)
         DUNE_THROW(Exceptions::linear_solver_failed_bc_it_did_not_converge,
@@ -284,7 +283,7 @@ public:
         communicator_.storage_access().copyOwnerToAll(writable_rhs.backend(), writable_rhs.backend());
         writable_rhs -= rhs;
         const R sup_norm = writable_rhs.sup_norm();
-        if (sup_norm > post_check_solves_system_threshold || DSC::isnan(sup_norm) || DSC::isinf(sup_norm))
+        if (sup_norm > post_check_solves_system_threshold || Common::isnan(sup_norm) || Common::isinf(sup_norm))
           DUNE_THROW(Exceptions::linear_solver_failed_bc_the_solution_does_not_solve_the_system,
                      "The computed solution does not solve the system (although the dune-istl backend "
                          << "reported no error) and you requested checking (see options below)!\n"
@@ -297,7 +296,7 @@ public:
                          << opts);
       }
     } catch (ISTLError& e) {
-      DUNE_THROW(Exceptions::linear_solver_failed, "The dune-istl backend reported: " << e.what());
+      DUNE_THROW(Common::Exceptions::linear_solver_failed, "The dune-istl backend reported: " << e.what());
     }
   } // ... apply(...)
 
@@ -317,7 +316,7 @@ class Solver<IstlRowMajorSparseMatrix<S>, CommunicatorType>
 #endif // HAVE_DUNE_ISTL
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_SOLVER_ISTL_HH
diff --git a/dune/xt/la/solver/istl/amg.hh b/dune/xt/la/solver/istl/amg.hh
index cc02c3b8f64fabf1416e1b5da534746e20f7ca30..f51ca97fd1210f18c80dd5f824ab82699f1ac76b 100644
--- a/dune/xt/la/solver/istl/amg.hh
+++ b/dune/xt/la/solver/istl/amg.hh
@@ -21,13 +21,13 @@
 #include <dune/istl/preconditioners.hh>
 #endif // HAVE_DUNE_ISTL
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/configuration.hh>
-#include <dune/stuff/common/parallel/helper.hh>
-#include <dune/stuff/la/container/istl.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/configuration.hh>
+#include <dune/xt/common/parallel/helper.hh>
+#include <dune/xt/la/container/istl.hh>
 
 namespace Dune {
-namespace Stuff {
+namespace XT {
 namespace LA {
 
 #if HAVE_DUNE_ISTL
@@ -167,7 +167,7 @@ public:
       solver.apply(solution.backend(), rhs.backend(), stats);
       return stats;
     } else
-      DUNE_THROW(Exceptions::wrong_input_given, "Unknown smoother requested: " << smoother_type);
+      DUNE_THROW(Common::Exceptions::wrong_input_given, "Unknown smoother requested: " << smoother_type);
   } // ... call(...)
 protected:
   const MatrixType& matrix_;
@@ -247,7 +247,7 @@ public:
                                             opts.get("verbose", default_opts.get<int>("verbose")));
       solver.apply(solution.backend(), rhs.backend(), stats);
     } else {
-      DUNE_THROW(Exceptions::wrong_input_given, "Unknown smoother requested: " << smoother_type);
+      DUNE_THROW(Common::Exceptions::wrong_input_given, "Unknown smoother requested: " << smoother_type);
     }
     return stats;
   } // ... call(...)
@@ -268,7 +268,7 @@ class AmgApplicator
 #endif // HAVE_DUNE_ISTL
 
 } // namespace LA
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_LA_SOLVER_ISTL_AMG_HH
diff --git a/dune/xt/la/test/container.cc b/dune/xt/la/test/container.cc
index a97cfe8b9d1757b6e87645bd98ef6d1f8e03ec8d..ebd0e148918f74bcacfaa4d6898fe625dc98677a 100644
--- a/dune/xt/la/test/container.cc
+++ b/dune/xt/la/test/container.cc
@@ -7,11 +7,12 @@
 //   Rene Milk       (2014 - 2015)
 //   Tobias Leibner  (2014 - 2015)
 
-#include "main.hxx"
+#include <dune/xt/common/test/main.hxx>
 
 #include "la_container.hh"
 
 using namespace Dune;
+using namespace Dune::XT;
 
 static const size_t dim = 4;
 
@@ -34,7 +35,7 @@ struct ContainerTest : public ::testing::Test
                   "ScalarType of derived_type has to be the correct Type!");
     static_assert(std::is_same<T_RealType, D_RealType>::value, "RealType of derived_type has to be the correct Type!");
     // * of the container as the interface
-    typedef typename Stuff::LA::ContainerInterface<Traits, D_ScalarType> InterfaceType;
+    typedef typename XT::LA::ContainerInterface<Traits, D_ScalarType> InterfaceType;
     typedef typename InterfaceType::derived_type I_derived_type;
     typedef typename InterfaceType::ScalarType I_ScalarType;
     typedef typename InterfaceType::RealType I_RealType;
diff --git a/dune/xt/la/test/container.hh b/dune/xt/la/test/container.hh
index 409cd912081524d44069861aa7360abadab2ca27..1b6769cdaf72ba2b6fdcca7434391204af323154 100644
--- a/dune/xt/la/test/container.hh
+++ b/dune/xt/la/test/container.hh
@@ -14,13 +14,13 @@
 #include <memory>
 #include <type_traits>
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/float_cmp.hh>
-#include <dune/stuff/la/container/interfaces.hh>
-#include <dune/stuff/la/container/common.hh>
-#include <dune/stuff/la/container/eigen.hh>
-#include <dune/stuff/la/container/istl.hh>
-#include <dune/stuff/la/container.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/float_cmp.hh>
+#include <dune/xt/la/container/interfaces.hh>
+#include <dune/xt/la/container/common.hh>
+#include <dune/xt/la/container/eigen.hh>
+#include <dune/xt/la/container/istl.hh>
+#include <dune/xt/la/container.hh>
 
 template <class ContainerImp>
 class ContainerFactory
@@ -33,22 +33,22 @@ public:
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::CommonDenseVector<S>>
+class ContainerFactory<Dune::XT::LA::CommonDenseVector<S>>
 {
 public:
-  static Dune::Stuff::LA::CommonDenseVector<S> create(const size_t size)
+  static Dune::XT::LA::CommonDenseVector<S> create(const size_t size)
   {
-    return Dune::Stuff::LA::CommonDenseVector<S>(size, S(1));
+    return Dune::XT::LA::CommonDenseVector<S>(size, S(1));
   }
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::CommonDenseMatrix<S>>
+class ContainerFactory<Dune::XT::LA::CommonDenseMatrix<S>>
 {
 public:
-  static Dune::Stuff::LA::CommonDenseMatrix<S> create(const size_t size)
+  static Dune::XT::LA::CommonDenseMatrix<S> create(const size_t size)
   {
-    Dune::Stuff::LA::CommonDenseMatrix<S> matrix(size, size);
+    Dune::XT::LA::CommonDenseMatrix<S> matrix(size, size);
     for (size_t ii = 0; ii < size; ++ii)
       matrix.unit_row(ii);
     return matrix;
@@ -57,25 +57,25 @@ public:
 
 #if HAVE_DUNE_ISTL
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::IstlDenseVector<S>>
+class ContainerFactory<Dune::XT::LA::IstlDenseVector<S>>
 {
 public:
-  static Dune::Stuff::LA::IstlDenseVector<S> create(const size_t size)
+  static Dune::XT::LA::IstlDenseVector<S> create(const size_t size)
   {
-    return Dune::Stuff::LA::IstlDenseVector<S>(size, S(1));
+    return Dune::XT::LA::IstlDenseVector<S>(size, S(1));
   }
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::IstlRowMajorSparseMatrix<S>>
+class ContainerFactory<Dune::XT::LA::IstlRowMajorSparseMatrix<S>>
 {
 public:
-  static Dune::Stuff::LA::IstlRowMajorSparseMatrix<S> create(const size_t size)
+  static Dune::XT::LA::IstlRowMajorSparseMatrix<S> create(const size_t size)
   {
-    Dune::Stuff::LA::SparsityPatternDefault pattern(size);
+    Dune::XT::LA::SparsityPatternDefault pattern(size);
     for (size_t ii = 0; ii < size; ++ii)
       pattern.inner(ii).push_back(ii);
-    Dune::Stuff::LA::IstlRowMajorSparseMatrix<S> matrix(size, size, pattern);
+    Dune::XT::LA::IstlRowMajorSparseMatrix<S> matrix(size, size, pattern);
     for (size_t ii = 0; ii < size; ++ii)
       matrix.unit_row(ii);
     return matrix;
@@ -85,32 +85,32 @@ public:
 
 #if HAVE_EIGEN
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::EigenDenseVector<S>>
+class ContainerFactory<Dune::XT::LA::EigenDenseVector<S>>
 {
 public:
-  static Dune::Stuff::LA::EigenDenseVector<S> create(const size_t size)
+  static Dune::XT::LA::EigenDenseVector<S> create(const size_t size)
   {
-    return Dune::Stuff::LA::EigenDenseVector<S>(size, S(1));
+    return Dune::XT::LA::EigenDenseVector<S>(size, S(1));
   }
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::EigenMappedDenseVector<S>>
+class ContainerFactory<Dune::XT::LA::EigenMappedDenseVector<S>>
 {
 public:
-  static Dune::Stuff::LA::EigenMappedDenseVector<S> create(const size_t size)
+  static Dune::XT::LA::EigenMappedDenseVector<S> create(const size_t size)
   {
-    return Dune::Stuff::LA::EigenMappedDenseVector<S>(size, S(1));
+    return Dune::XT::LA::EigenMappedDenseVector<S>(size, S(1));
   }
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::EigenDenseMatrix<S>>
+class ContainerFactory<Dune::XT::LA::EigenDenseMatrix<S>>
 {
 public:
-  static Dune::Stuff::LA::EigenDenseMatrix<S> create(const size_t size)
+  static Dune::XT::LA::EigenDenseMatrix<S> create(const size_t size)
   {
-    Dune::Stuff::LA::EigenDenseMatrix<S> matrix(size, size);
+    Dune::XT::LA::EigenDenseMatrix<S> matrix(size, size);
     for (size_t ii = 0; ii < size; ++ii)
       matrix.unit_row(ii);
     return matrix;
@@ -118,15 +118,15 @@ public:
 };
 
 template <class S>
-class ContainerFactory<Dune::Stuff::LA::EigenRowMajorSparseMatrix<S>>
+class ContainerFactory<Dune::XT::LA::EigenRowMajorSparseMatrix<S>>
 {
 public:
-  static Dune::Stuff::LA::EigenRowMajorSparseMatrix<S> create(const size_t size)
+  static Dune::XT::LA::EigenRowMajorSparseMatrix<S> create(const size_t size)
   {
-    Dune::Stuff::LA::SparsityPatternDefault pattern(size);
+    Dune::XT::LA::SparsityPatternDefault pattern(size);
     for (size_t ii = 0; ii < size; ++ii)
       pattern.inner(ii).push_back(ii);
-    Dune::Stuff::LA::EigenRowMajorSparseMatrix<S> matrix(size, size, pattern);
+    Dune::XT::LA::EigenRowMajorSparseMatrix<S> matrix(size, size, pattern);
     for (size_t ii = 0; ii < size; ++ii)
       matrix.unit_row(ii);
     return matrix;
diff --git a/dune/xt/la/test/container_matrix.cc b/dune/xt/la/test/container_matrix.cc
index fba3f6c6fec359d3357014b7ed99966d873f63f1..dcf9f45ce4c7d463ca9901c002301c3ab650bbe9 100644
--- a/dune/xt/la/test/container_matrix.cc
+++ b/dune/xt/la/test/container_matrix.cc
@@ -5,11 +5,12 @@
 //
 // Contributors: Tobias Leibner
 
-#include "main.hxx"
+#include <dune/xt/common/test/main.hxx>
 
 #include "la_container.hh"
 
 using namespace Dune;
+using namespace Dune::XT;
 
 static const size_t dim = 4;
 
@@ -17,7 +18,7 @@ struct MatrixTest : public ::testing::Test
 {
   typedef TESTMATRIXTYPE MatrixImp;
   typedef TESTVECTORTYPE VectorImp;
-  typedef typename Dune::Stuff::LA::SparsityPatternDefault PatternType;
+  typedef typename Dune::XT::LA::SparsityPatternDefault PatternType;
 
   void fulfills_interface() const
   {
@@ -35,7 +36,7 @@ struct MatrixTest : public ::testing::Test
                   "ScalarType of derived_type has to be the correct Type!");
     static_assert(std::is_same<T_RealType, D_RealType>::value, "RealType of derived_type has to be the correct Type!");
     // * of the matrix as the interface
-    typedef typename Stuff::LA::MatrixInterface<Traits, D_ScalarType> InterfaceType;
+    typedef typename XT::LA::MatrixInterface<Traits, D_ScalarType> InterfaceType;
     typedef typename InterfaceType::derived_type I_derived_type;
     typedef typename InterfaceType::ScalarType I_ScalarType;
     typedef typename InterfaceType::RealType I_RealType;
@@ -207,7 +208,7 @@ struct MatrixTest : public ::testing::Test
     VectorImp a = vector_ones;
     matrix_zeros_dense.mv(vector_zeros, a);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), vector_ones[ii])) << "check copy-on-write";
+      EXPECT_TRUECommon::FloatCmp::eq(ScalarType(1), vector_ones[ii])) << "check copy-on-write";
     }
 
     // test scal, operator*
@@ -251,7 +252,7 @@ struct MatrixTest : public ::testing::Test
       for (size_t jj = 0; jj < cols; ++jj) {
         EXPECT_TRUE(
             DSC::FloatCmp::eq(testmatrix_sparse.get_entry(ii, jj) * ScalarType(-1.25), scaled.get_entry(ii, jj)));
-        EXPECT_TRUE(DSC::FloatCmp::eq(testmatrix_sparse.get_entry(ii, jj) * ScalarType(-1.25),
+        EXPECT_TRUECommon::FloatCmp::eq(testmatrix_sparse.get_entry(ii, jj) * ScalarType(-1.25),
                                       scaled_by_operator.get_entry(ii, jj)));
       }
     }
@@ -261,7 +262,7 @@ struct MatrixTest : public ::testing::Test
     scaled_by_operator *= ScalarType(10);
     for (size_t ii = 0; ii < rows; ++ii) {
       for (size_t jj = 0; jj < cols; ++jj) {
-        EXPECT_TRUE(DSC::FloatCmp::eq(testmatrix_1.get_entry(ii, jj) * ScalarType(10), scaled.get_entry(ii, jj)));
+        EXPECT_TRUECommon::FloatCmp::eq(testmatrix_1.get_entry(ii, jj) * ScalarType(10), scaled.get_entry(ii, jj)));
         EXPECT_TRUE(
             DSC::FloatCmp::eq(testmatrix_1.get_entry(ii, jj) * ScalarType(10), scaled_by_operator.get_entry(ii, jj)));
       }
@@ -270,7 +271,7 @@ struct MatrixTest : public ::testing::Test
     b.scal(ScalarType(0));
     for (size_t ii = 0; ii < rows; ++ii) {
       for (size_t jj = 0; jj < cols; ++jj) {
-        EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), matrix_ones.get_entry(ii, jj))) << "check copy-on-write";
+        EXPECT_TRUECommon::FloatCmp::eq(ScalarType(1), matrix_ones.get_entry(ii, jj))) << "check copy-on-write";
       }
     }
 
@@ -301,7 +302,7 @@ struct MatrixTest : public ::testing::Test
     result_axpy.axpy(ScalarType(2), testmatrix_2);
     for (size_t ii = 0; ii < rows; ++ii) {
       for (size_t jj = 0; jj < cols; ++jj) {
-        EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(2) * testmatrix_2.get_entry(ii, jj) + testmatrix_1.get_entry(ii, jj),
+        EXPECT_TRUECommon::FloatCmp::eq(ScalarType(2) * testmatrix_2.get_entry(ii, jj) + testmatrix_1.get_entry(ii, jj),
                                       result_axpy.get_entry(ii, jj)));
       }
     }
@@ -309,7 +310,7 @@ struct MatrixTest : public ::testing::Test
     b.axpy(ScalarType(1), matrix_ones);
     for (size_t ii = 0; ii < rows; ++ii) {
       for (size_t jj = 0; jj < cols; ++jj) {
-        EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(0), matrix_zeros_dense.get_entry(ii, jj))) << "check copy-on-write";
+        EXPECT_TRUECommon::FloatCmp::eq(ScalarType(0), matrix_zeros_dense.get_entry(ii, jj))) << "check copy-on-write";
       }
     }
   } // void produces_correct_results() const
diff --git a/dune/xt/la/test/container_vector.cc b/dune/xt/la/test/container_vector.cc
index 31c1b14701a0059c4b1e424ef7629390112c281e..294798476ef1d9a74dac77231d36a43c879f288f 100644
--- a/dune/xt/la/test/container_vector.cc
+++ b/dune/xt/la/test/container_vector.cc
@@ -5,11 +5,12 @@
 //
 // Contributors: Tobias Leibner
 
-#include "main.hxx"
+#include <dune/xt/common/test/main.hxx>
 
 #include "la_container.hh"
 
 using namespace Dune;
+using namespace Dune::XT;
 
 static const size_t dim = 4;
 
@@ -33,7 +34,7 @@ struct VectorTest : public ::testing::Test
                   "ScalarType of derived_type has to be the correct Type!");
     static_assert(std::is_same<T_RealType, D_RealType>::value, "RealType of derived_type has to be the correct Type!");
     // * of the vector as the interface
-    typedef typename Stuff::LA::VectorInterface<Traits, D_ScalarType> InterfaceType;
+    typedef typename XT::LA::VectorInterface<Traits, D_ScalarType> InterfaceType;
     typedef typename InterfaceType::derived_type I_derived_type;
     typedef typename InterfaceType::ScalarType I_ScalarType;
     typedef typename InterfaceType::RealType I_RealType;
@@ -53,7 +54,7 @@ struct VectorTest : public ::testing::Test
       EXPECT_FALSE(
           DSC::FloatCmp::ne(d_by_size_and_value.get_entry(ii), D_ScalarType(2) * D_ScalarType(ii) + D_ScalarType(1)))
           << d_by_size_and_value.get_entry(ii);
-      EXPECT_FALSE(DSC::FloatCmp::ne(d_by_size_and_value.get_entry(ii), d_by_size_and_value[ii]))
+      EXPECT_FALSE(Common::FloatCmp::ne(d_by_size_and_value.get_entry(ii), d_by_size_and_value[ii]))
           << d_by_size_and_value[ii];
     }
     size_t d_dim = d_by_size.dim();
@@ -242,19 +243,19 @@ struct VectorTest : public ::testing::Test
     ScalarType dot_operator   = ones * zeros;
     ScalarType dot2           = zeros.dot(ones);
     ScalarType dot_operator_2 = zeros * ones;
-    EXPECT_TRUE(DSC::FloatCmp::eq(dot, ScalarType(0)) && DSC::FloatCmp::eq(dot, dot2)
+    EXPECT_TRUE(Common::FloatCmp::eq(dot, ScalarType(0)) && DSC::FloatCmp::eq(dot, dot2)
                 && DSC::FloatCmp::eq(dot_operator, dot_operator_2)
                 && DSC::FloatCmp::eq(dot, dot_operator))
         << "These should all equal 0: " << dot << ", " << dot2 << ", " << dot_operator << ", " << dot_operator_2;
     dot          = ones.dot(ones);
     dot_operator = ones * ones;
-    EXPECT_TRUE(DSC::FloatCmp::eq(dot, ScalarType(4)) && DSC::FloatCmp::eq(dot_operator, ScalarType(4)))
+    EXPECT_TRUE(Common::FloatCmp::eq(dot, ScalarType(4)) && DSC::FloatCmp::eq(dot_operator, ScalarType(4)))
         << "These should equal 4: " << dot << ", " << dot_operator;
     dot            = ones.dot(testvector_3);
     dot_operator   = ones * testvector_3;
     dot2           = testvector_3.dot(ones);
     dot_operator_2 = testvector_3 * ones;
-    EXPECT_TRUE(DSC::FloatCmp::eq(dot, ScalarType(0)) && DSC::FloatCmp::eq(dot, dot2)
+    EXPECT_TRUE(Common::FloatCmp::eq(dot, ScalarType(0)) && DSC::FloatCmp::eq(dot, dot2)
                 && DSC::FloatCmp::eq(dot_operator, dot_operator_2)
                 && DSC::FloatCmp::eq(dot, dot_operator))
         << "These should all equal 0: " << dot << ", " << dot2 << ", " << dot_operator << ", " << dot_operator_2;
@@ -262,7 +263,7 @@ struct VectorTest : public ::testing::Test
     dot_operator   = countingup * testvector_5;
     dot2           = testvector_5.dot(countingup);
     dot_operator_2 = testvector_5 * countingup;
-    EXPECT_TRUE(DSC::FloatCmp::eq(dot, ScalarType(-5.5)) && DSC::FloatCmp::eq(dot, dot2)
+    EXPECT_TRUE(Common::FloatCmp::eq(dot, ScalarType(-5.5)) && DSC::FloatCmp::eq(dot, dot2)
                 && DSC::FloatCmp::eq(dot_operator, dot_operator_2)
                 && DSC::FloatCmp::eq(dot, dot_operator))
         << "These should all equal -5.5: " << dot << ", " << dot2 << ", " << dot_operator << ", " << dot_operator_2;
@@ -270,7 +271,7 @@ struct VectorTest : public ::testing::Test
     dot_operator   = testvector_3 * testvector_5;
     dot2           = testvector_5.dot(testvector_3);
     dot_operator_2 = testvector_5 * testvector_3;
-    EXPECT_TRUE(DSC::FloatCmp::eq(dot, ScalarType(-7.25)) && DSC::FloatCmp::eq(dot, dot2)
+    EXPECT_TRUE(Common::FloatCmp::eq(dot, ScalarType(-7.25)) && DSC::FloatCmp::eq(dot, dot2)
                 && DSC::FloatCmp::eq(dot_operator, dot_operator_2)
                 && DSC::FloatCmp::eq(dot, dot_operator))
         << "These should all equal -7.25: " << dot << ", " << dot2 << ", " << dot_operator << ", " << dot_operator_2;
@@ -316,37 +317,37 @@ struct VectorTest : public ::testing::Test
     scaled_by_operator = testvector_1;
     scaled_by_operator *= ScalarType(2);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(2) * testvector_1[ii], scaled[ii]));
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(2) * testvector_1[ii], scaled_by_operator[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(2) * testvector_1[ii], scaled[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(2) * testvector_1[ii], scaled_by_operator[ii]));
     }
     scaled = testvector_3;
     scaled.scal(ScalarType(-2));
     scaled_by_operator = testvector_3;
     scaled_by_operator *= ScalarType(-2);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(-2) * testvector_3[ii], scaled[ii]));
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(-2) * testvector_3[ii], scaled_by_operator[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(-2) * testvector_3[ii], scaled[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(-2) * testvector_3[ii], scaled_by_operator[ii]));
     }
     scaled = countingup;
     scaled.scal(ScalarType(2.2));
     scaled_by_operator = countingup;
     scaled_by_operator *= ScalarType(2.2);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(2.2) * countingup[ii], scaled[ii]));
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(2.2) * countingup[ii], scaled_by_operator[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(2.2) * countingup[ii], scaled[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(2.2) * countingup[ii], scaled_by_operator[ii]));
     }
     scaled = testvector_5;
     scaled.scal(ScalarType(-3.75));
     scaled_by_operator = testvector_5;
     scaled_by_operator *= ScalarType(-3.75);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(-3.75) * testvector_5[ii], scaled[ii]));
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(-3.75) * testvector_5[ii], scaled_by_operator[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(-3.75) * testvector_5[ii], scaled[ii]));
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(-3.75) * testvector_5[ii], scaled_by_operator[ii]));
     }
     VectorImp a = ones;
     a.scal(ScalarType(0));
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
 
     // test operator+, operator+=, add, iadd
@@ -406,17 +407,17 @@ struct VectorTest : public ::testing::Test
     a = ones;
     a += testvector_3;
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
     a = ones;
     a.iadd(testvector_3);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
     a = ones;
     ones.add(testvector_3, a);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
 
     // test operator-, operator-=, sub, isub
@@ -476,17 +477,17 @@ struct VectorTest : public ::testing::Test
     a = ones;
     a -= testvector_3;
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
     a = ones;
     a.isub(testvector_3);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
     a = ones;
     ones.sub(testvector_3, a);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
 
     // test operator= for scalars
@@ -523,7 +524,7 @@ struct VectorTest : public ::testing::Test
     a = ones;
     a.axpy(ScalarType(2), testvector_3);
     for (size_t ii = 0; ii < dim; ++ii) {
-      EXPECT_TRUE(DSC::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
+      EXPECT_TRUE(Common::FloatCmp::eq(ScalarType(1), ones[ii])) << "check copy-on-write";
     }
   } // void produces_correct_results() const
 }; // struct VectorTest
diff --git a/dune/xt/la/test/solver.cc b/dune/xt/la/test/solver.cc
index 704e9ccace6bf59326d9e8e9d5d2baa4c4655c08..2c7c821c5b345b01d9380bfa4110073eaa11b67e 100644
--- a/dune/xt/la/test/solver.cc
+++ b/dune/xt/la/test/solver.cc
@@ -8,23 +8,24 @@
 //   Tobias Leibner  (2014)
 
 // This one has to come first (includes the config.h)!
-#include "main.hxx"
+#include <dune/xt/common/test/main.hxx>
 
 #include <tuple>
 
-#include <dune/stuff/common/exceptions.hh>
-#include <dune/stuff/common/logging.hh>
-#include <dune/stuff/la/container.hh>
-#include <dune/stuff/la/solver.hh>
+#include <dune/xt/common/exceptions.hh>
+#include <dune/xt/common/logging.hh>
+#include <dune/xt/la/container.hh>
+#include <dune/xt/la/solver.hh>
 
-#include "la_container.hh"
+#include "container.hh"
 
 // toggle output
 // std::ostream& out = std::cout;
-std::ostream& out = DSC_LOG.devnull();
+std::ostream& out = DXTC_LOG.devnull();
 
-using namespace Dune::Stuff;
-using namespace Dune::Stuff::LA;
+using namespace Dune;
+using namespace Dune::XT;
+using namespace Dune::XT::LA;
 
 struct SolverTest : public ::testing::Test
 {
@@ -51,7 +52,7 @@ struct SolverTest : public ::testing::Test
     // static tests
     std::vector<std::string> types = SolverType::types();
     if (types.size() == 0)
-      DUNE_THROW(Exceptions::results_are_not_as_expected, "Solver has no types!");
+      DUNE_THROW(Common::Exceptions::results_are_not_as_expected, "Solver has no types!");
     for (auto type : types) {
       out << "solving with type '" << type << "' and options" << std::endl;
       Common::Configuration options = SolverType::options(type);