diff --git a/dumux/common/typetraits/utility.hh b/dumux/common/typetraits/utility.hh
index b5fd00267663379964f090b9c8f8a3569bbf9283..f6328087b11a371822f81f9c00a181ac3f11ce31 100644
--- a/dumux/common/typetraits/utility.hh
+++ b/dumux/common/typetraits/utility.hh
@@ -25,6 +25,9 @@
 #ifndef DUMUX_COMMON_TYPETRAITS_UTILITY_HH
 #define DUMUX_COMMON_TYPETRAITS_UTILITY_HH
 
+#include <cstddef>
+#include <utility>
+
 namespace Dumux {
 
 /*
diff --git a/dumux/discretization/staggered/elementfluxvariablescache.hh b/dumux/discretization/staggered/elementfluxvariablescache.hh
index 0e68cad30f2b8cf3f2aa895770bece2c800bdbe5..f30291b232e6fab6d4eb5a1f9ed7cdd12c602bdc 100644
--- a/dumux/discretization/staggered/elementfluxvariablescache.hh
+++ b/dumux/discretization/staggered/elementfluxvariablescache.hh
@@ -29,6 +29,8 @@
 #include <iterator>
 #include <vector>
 
+#include <dune/common/exceptions.hh>
+
 namespace Dumux {
 
 /*!
diff --git a/dumux/freeflow/compositional/volumevariables.hh b/dumux/freeflow/compositional/volumevariables.hh
index 438367072435c25650af8424df7e2e6d990c25db..b9d9ac8690880ddc6ea755ea83a4a3dce7f1ba16 100644
--- a/dumux/freeflow/compositional/volumevariables.hh
+++ b/dumux/freeflow/compositional/volumevariables.hh
@@ -25,8 +25,8 @@
 #ifndef DUMUX_FREEFLOW_NC_VOLUMEVARIABLES_HH
 #define DUMUX_FREEFLOW_NC_VOLUMEVARIABLES_HH
 
+#include <array>
 #include <dune/common/exceptions.hh>
-
 #include <dumux/freeflow/volumevariables.hh>
 
 namespace Dumux {
diff --git a/dumux/freeflow/nonisothermal/model.hh b/dumux/freeflow/nonisothermal/model.hh
index c8d057b5cc914657bbad18c9c2ba46f4cddfb591..87b7099d594efe76808b3a640a0863a069701fe7 100644
--- a/dumux/freeflow/nonisothermal/model.hh
+++ b/dumux/freeflow/nonisothermal/model.hh
@@ -43,6 +43,7 @@
 #ifndef DUMUX_FREEFLOW_NI_MODEL_HH
 #define DUMUX_FREEFLOW_NI_MODEL_HH
 
+#include <string>
 #include "indices.hh"
 
 namespace Dumux {
diff --git a/dumux/geomechanics/poroelastic/iofields.hh b/dumux/geomechanics/poroelastic/iofields.hh
index 262475c5b646c5df52e5b75657b432d66e7bf854..7c8193084d5188efa165eb8eaa7edc682546c897 100644
--- a/dumux/geomechanics/poroelastic/iofields.hh
+++ b/dumux/geomechanics/poroelastic/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_POROELASTIC_IO_FIELDS_HH
 #define DUMUX_POROELASTIC_IO_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/io/grid/gmshgriddatahandle.hh b/dumux/io/grid/gmshgriddatahandle.hh
index a5a932e884c8815f1a92151be3400c165ec9c0f6..acedf218c7856d4d7e4bcfc50d5390e6474c27a1 100644
--- a/dumux/io/grid/gmshgriddatahandle.hh
+++ b/dumux/io/grid/gmshgriddatahandle.hh
@@ -26,6 +26,7 @@
 
 #include <memory>
 #include <algorithm>
+#include <map>
 
 #include <dune/common/parallel/collectivecommunication.hh>
 #include <dune/grid/common/partitionset.hh>
diff --git a/dumux/io/grid/griddata.hh b/dumux/io/grid/griddata.hh
index 3b83df33bb2e60f4995b4ceaf66a988ebfe50ac6..f960d0f4890e4251c3940cf92f7a0aa68640b591 100644
--- a/dumux/io/grid/griddata.hh
+++ b/dumux/io/grid/griddata.hh
@@ -32,6 +32,8 @@
 #include <dune/common/parallel/collectivecommunication.hh>
 #include <dune/common/parallel/mpihelper.hh>
 #include <dune/grid/common/gridfactory.hh>
+#include <dune/grid/io/file/dgfparser/parser.hh>
+#include <dune/grid/io/file/dgfparser/gridptr.hh>
 
 // UGGrid specific includes
 #if HAVE_UG
diff --git a/dumux/io/loadsolution.hh b/dumux/io/loadsolution.hh
index da1c8640c5edd6aac3bffffda33ae94c2276b677..2d5b7b86eb4a01d07a5dc7d197a7ebd5a95e53eb 100644
--- a/dumux/io/loadsolution.hh
+++ b/dumux/io/loadsolution.hh
@@ -34,11 +34,14 @@
 
 #include <dune/common/exceptions.hh>
 #include <dune/common/indices.hh>
+#include <dune/grid/common/partitionset.hh>
 
 #include <dumux/common/parameters.hh>
 #include <dumux/common/typetraits/isvalid.hh>
 #include <dumux/common/typetraits/vector.hh>
 #include <dumux/io/vtk/vtkreader.hh>
+#include <dumux/discretization/method.hh>
+
 
 namespace Dumux {
 namespace Detail {
diff --git a/dumux/material/binarycoefficients/brine_co2.hh b/dumux/material/binarycoefficients/brine_co2.hh
index d901d6533172255491b18b416e1258b11180c5d0..2ac59a94a70bbce496d6575c2fffdf99761e8978 100644
--- a/dumux/material/binarycoefficients/brine_co2.hh
+++ b/dumux/material/binarycoefficients/brine_co2.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_BINARY_COEFF_BRINE_CO2_HH
 #define DUMUX_BINARY_COEFF_BRINE_CO2_HH
 
+#include <dumux/common/parameters.hh>
 #include <dumux/material/components/brine.hh>
 #include <dumux/material/components/h2o.hh>
 #include <dumux/material/components/co2.hh>
diff --git a/dumux/material/components/tabulatedcomponent.hh b/dumux/material/components/tabulatedcomponent.hh
index 08fe858bdc66826c7594b2abf9216a402ccb3abf..8dd866d98f30cf7b3f978e3ddd48129e94c67de3 100644
--- a/dumux/material/components/tabulatedcomponent.hh
+++ b/dumux/material/components/tabulatedcomponent.hh
@@ -1078,6 +1078,11 @@ typename RawComponent::Scalar TabulatedComponent<RawComponent, useVaporPressure>
 template <class RawComponent, bool useVaporPressure>
 unsigned TabulatedComponent<RawComponent, useVaporPressure>::nDensity_;
 
+// forward declaration
+template <class Component>
+struct IsAqueous;
+
+// we are aqueous if the raw compont is so
 template <class RawComponent, bool useVaporPressure>
 struct IsAqueous<TabulatedComponent<RawComponent, useVaporPressure>> : public IsAqueous<RawComponent> {};
 
diff --git a/dumux/material/eos/pengrobinson.hh b/dumux/material/eos/pengrobinson.hh
index a61c178f499190f3500618ce3bcc711364031da3..588760ffe159507407547905773fe25bafc6f2f5 100644
--- a/dumux/material/eos/pengrobinson.hh
+++ b/dumux/material/eos/pengrobinson.hh
@@ -146,11 +146,7 @@ public:
                                      int phaseIdx,
                                      bool isGasPhase)
     {
-        Valgrind::CheckDefined(fs.temperature(phaseIdx));
-        Valgrind::CheckDefined(fs.pressure(phaseIdx));
-
         Scalar Vm = 0;
-        Valgrind::SetUndefined(Vm);
 
         Scalar T = fs.temperature(phaseIdx);
         Scalar p = fs.pressure(phaseIdx);
@@ -213,7 +209,6 @@ public:
             }
         }
 
-        Valgrind::CheckDefined(Vm);
         using std::isfinite;
         assert(isfinite(Vm) && Vm > 0);
         return Vm;
diff --git a/dumux/material/fluidstates/2p2c.hh b/dumux/material/fluidstates/2p2c.hh
index c7dc190ec8476262248f1ecc3e180a2158411697..2814d86bae836668d648d29d54214aff3f546992 100644
--- a/dumux/material/fluidstates/2p2c.hh
+++ b/dumux/material/fluidstates/2p2c.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_2P2C_FLUID_STATE_HH
 #define DUMUX_2P2C_FLUID_STATE_HH
 
+#include <cmath>
 #include <dune/common/deprecated.hh>
 
 namespace Dumux {
diff --git a/dumux/material/fluidstates/compositional.hh b/dumux/material/fluidstates/compositional.hh
index 7c429efc2bd0a123443a6a0f40b62c7f70dfcd72..b15c708aedd91b7aa9649f9b1478e7247c7a52b6 100644
--- a/dumux/material/fluidstates/compositional.hh
+++ b/dumux/material/fluidstates/compositional.hh
@@ -30,6 +30,7 @@
 #include <cmath>
 #include <type_traits>
 #include <cassert>
+#include <array>
 
 #include <dune/common/exceptions.hh>
 
diff --git a/dumux/material/fluidsystems/base.hh b/dumux/material/fluidsystems/base.hh
index 3da0a5c280cf51b331e4eb2943dd885ade357a94..9aa6dce75d063ce71af478cd2d979d6f719ffa1e 100644
--- a/dumux/material/fluidsystems/base.hh
+++ b/dumux/material/fluidsystems/base.hh
@@ -25,6 +25,8 @@
 #define DUMUX_BASE_FLUID_SYSTEM_HH
 
 #include <string>
+
+#include <dune/common/exceptions.hh>
 #include <dumux/common/typetraits/typetraits.hh>
 #include "nullparametercache.hh"
 
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
index 2d8d3d8195a3ba7a18ea373af00e1f9f99a89da1..2f4c3997c0b9524abc161c6d48a3b8469f1f0663 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingdata.hh
@@ -27,6 +27,8 @@
 #ifndef DUMUX_STOKES_DARCY_COUPLINGDATA_HH
 #define DUMUX_STOKES_DARCY_COUPLINGDATA_HH
 
+#include <numeric>
+
 #include <dumux/common/properties.hh>
 #include <dumux/common/math.hh>
 #include <dumux/multidomain/couplingmanager.hh>
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
index 308f2c03188a551facc1bc2e1da3bd0f598c041e..04b0cdd29e62f0175f78a41c1fa927993aef485c 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmanager.hh
@@ -34,6 +34,7 @@
 #include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/multidomain/staggeredcouplingmanager.hh>
+#include <dumux/discretization/staggered/elementsolution.hh>
 
 #include "couplingdata.hh"
 #include "couplingmapper.hh"
diff --git a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
index ab1eb2a54bd5d940e0667b71a156f9dfd3741b66..ea9ae18f42d0e7c5b215fe78b4754667471c3ac0 100644
--- a/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
+++ b/dumux/multidomain/boundary/stokesdarcy/couplingmapper.hh
@@ -32,8 +32,11 @@
 #include <string>
 #include <utility>
 #include <memory>
+#include <unordered_map>
+#include <vector>
 
 #include <dune/common/timer.hh>
+#include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/discretization/method.hh>
 
diff --git a/dumux/multidomain/couplingjacobianpattern.hh b/dumux/multidomain/couplingjacobianpattern.hh
index 257d967355bdda8687576c45c403940d37421b0c..34a195859a3e86493462c8bcba5ab94e6fd26bef 100644
--- a/dumux/multidomain/couplingjacobianpattern.hh
+++ b/dumux/multidomain/couplingjacobianpattern.hh
@@ -26,6 +26,7 @@
 #define DUMUX_MUTLIDOMAIN_COUPLING_JACOBIAN_PATTERN_HH
 
 #include <type_traits>
+#include <dune/common/indices.hh>
 #include <dune/istl/matrixindexset.hh>
 #include <dumux/discretization/method.hh>
 
diff --git a/dumux/multidomain/embedded/circlepoints.hh b/dumux/multidomain/embedded/circlepoints.hh
index 92b2db3b198966423a157a4e1a2d6b1c91f2a735..6de3801dcb17ccda3f32ab8ba5499d503ed84ed6 100644
--- a/dumux/multidomain/embedded/circlepoints.hh
+++ b/dumux/multidomain/embedded/circlepoints.hh
@@ -29,6 +29,8 @@
 #include <vector>
 #include <cmath>
 
+#include <dune/common/exceptions.hh>
+
 namespace Dumux {
 namespace EmbeddedCoupling {
 
diff --git a/dumux/multidomain/embedded/extendedsourcestencil.hh b/dumux/multidomain/embedded/extendedsourcestencil.hh
index 22ab62a3719dbba687bf3023bdad3bceb160c37a..ead7fb11a7a4117e1075689471edd16ee668bf6e 100644
--- a/dumux/multidomain/embedded/extendedsourcestencil.hh
+++ b/dumux/multidomain/embedded/extendedsourcestencil.hh
@@ -27,7 +27,13 @@
 #define DUMUX_MULTIDOMAIN_EMBEDDED_EXTENDEDSOURCESTENCIL_HH
 
 #include <vector>
+
+#include <dune/common/indices.hh>
+
 #include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/numericdifferentiation.hh>
+#include <dumux/discretization/method.hh>
 
 namespace Dumux {
 namespace EmbeddedCoupling {
diff --git a/dumux/multidomain/facet/box/couplingmanager.hh b/dumux/multidomain/facet/box/couplingmanager.hh
index 6a1190ed492f2555edad67e1fd901a58d8996516..6c5f2b9acd741240c696eec20311090d9f5ad883 100644
--- a/dumux/multidomain/facet/box/couplingmanager.hh
+++ b/dumux/multidomain/facet/box/couplingmanager.hh
@@ -32,6 +32,7 @@
 #include <dumux/discretization/method.hh>
 #include <dumux/discretization/elementsolution.hh>
 #include <dumux/multidomain/couplingmanager.hh>
+#include <dumux/multidomain/facet/couplingmanager.hh>
 
 namespace Dumux {
 
diff --git a/dumux/multidomain/facet/codimonegridadapter.hh b/dumux/multidomain/facet/codimonegridadapter.hh
index d97456ee7c667aa30d1e928f91f692238a9dc06e..b49b0cb016a5a3d7403d07abe0b0dd38421fe04b 100644
--- a/dumux/multidomain/facet/codimonegridadapter.hh
+++ b/dumux/multidomain/facet/codimonegridadapter.hh
@@ -26,6 +26,7 @@
 #ifndef DUMUX_FACETCOUPLING_CODIM_ONE_GRID_ADAPTER_HH
 #define DUMUX_FACETCOUPLING_CODIM_ONE_GRID_ADAPTER_HH
 
+#include <memory>
 #include <dune/grid/common/mcmgmapper.hh>
 #include <dune/geometry/referenceelements.hh>
 
diff --git a/dumux/multidomain/facet/couplingmapper.hh b/dumux/multidomain/facet/couplingmapper.hh
index 7990b4156f8bf1e2d5a7cf4680bcefd0304312c0..495c65bf0cecdb7d3197b0113c6291878113d84d 100644
--- a/dumux/multidomain/facet/couplingmapper.hh
+++ b/dumux/multidomain/facet/couplingmapper.hh
@@ -23,6 +23,8 @@
 #ifndef DUMUX_FACETCOUPLING_MAPPER_HH
 #define DUMUX_FACETCOUPLING_MAPPER_HH
 
+#include <memory>
+
 #include <dune/common/indices.hh>
 #include <dumux/discretization/method.hh>
 
diff --git a/dumux/multidomain/facet/couplingmapperbase.hh b/dumux/multidomain/facet/couplingmapperbase.hh
index 34793958a9302681c700a80d92c0acc23d281788..f61908f32f1b0edec2b116ce800b5ee14b3fa714 100644
--- a/dumux/multidomain/facet/couplingmapperbase.hh
+++ b/dumux/multidomain/facet/couplingmapperbase.hh
@@ -26,8 +26,10 @@
 #include <vector>
 #include <unordered_map>
 #include <algorithm>
+#include <memory>
 
 #include <dune/common/indices.hh>
+#include <dune/common/exceptions.hh>
 
 namespace Dumux {
 
diff --git a/dumux/multidomain/facet/gmshreader.hh b/dumux/multidomain/facet/gmshreader.hh
index a2f3b4069c88b494e3f13e3c1a481d179e3cf9f0..ca67816af6b8688da65397594752bd7624d5b8a9 100644
--- a/dumux/multidomain/facet/gmshreader.hh
+++ b/dumux/multidomain/facet/gmshreader.hh
@@ -29,6 +29,7 @@
 #include <iostream>
 #include <sstream>
 #include <typeinfo>
+#include <unordered_map>
 
 #include <dune/common/timer.hh>
 #include <dune/common/version.hh>
diff --git a/dumux/multidomain/staggeredcouplingmanager.hh b/dumux/multidomain/staggeredcouplingmanager.hh
index a1ff234f325577457f56770b547865844b2a0af3..60c90bdd0af23498d304903a938b3d14566a97cd 100644
--- a/dumux/multidomain/staggeredcouplingmanager.hh
+++ b/dumux/multidomain/staggeredcouplingmanager.hh
@@ -28,6 +28,7 @@
 
 #include <dumux/multidomain/couplingmanager.hh>
 #include <dumux/assembly/numericepsilon.hh>
+#include <dumux/discretization/method.hh>
 
 namespace Dumux {
 
diff --git a/dumux/multidomain/subdomainboxlocalassembler.hh b/dumux/multidomain/subdomainboxlocalassembler.hh
index 487912202eea1f03d3904800044f9e2d1cf70632..85bde2e8ea833922f742a12a6f949771497e6617 100644
--- a/dumux/multidomain/subdomainboxlocalassembler.hh
+++ b/dumux/multidomain/subdomainboxlocalassembler.hh
@@ -27,6 +27,8 @@
 #define DUMUX_MULTIDOMAIN_BOX_LOCAL_ASSEMBLER_HH
 
 #include <dune/common/reservedvector.hh>
+#include <dune/common/indices.hh>
+#include <dune/common/hybridutilities.hh>
 #include <dune/grid/common/gridenums.hh> // for GhostEntity
 #include <dune/istl/matrixindexset.hh>
 
diff --git a/dumux/multidomain/subdomaincclocalassembler.hh b/dumux/multidomain/subdomaincclocalassembler.hh
index 918e1401c27a6eca2651e53556c02bb79baa1604..f2de3ab3ced7ccb38da7b1bce4c638833f8cf5b3 100644
--- a/dumux/multidomain/subdomaincclocalassembler.hh
+++ b/dumux/multidomain/subdomaincclocalassembler.hh
@@ -26,7 +26,9 @@
 #ifndef DUMUX_MULTIDOMAIN_CC_LOCAL_ASSEMBLER_HH
 #define DUMUX_MULTIDOMAIN_CC_LOCAL_ASSEMBLER_HH
 
+#include <dune/common/indices.hh>
 #include <dune/common/reservedvector.hh>
+#include <dune/common/hybridutilities.hh>
 #include <dune/grid/common/gridenums.hh> // for GhostEntity
 #include <dune/istl/matrixindexset.hh>
 
diff --git a/dumux/multidomain/subdomainstaggeredlocalassembler.hh b/dumux/multidomain/subdomainstaggeredlocalassembler.hh
index 738477a41067867625fd42d57446c0f45b7a3cfa..8291157bcefdaae230201b10c0481873dfa311ce 100644
--- a/dumux/multidomain/subdomainstaggeredlocalassembler.hh
+++ b/dumux/multidomain/subdomainstaggeredlocalassembler.hh
@@ -27,6 +27,8 @@
 #define DUMUX_MULTIDOMAIN_STAGGERED_LOCAL_ASSEMBLER_HH
 
 #include <dune/common/reservedvector.hh>
+#include <dune/common/indices.hh>
+#include <dune/common/hybridutilities.hh>
 #include <dune/grid/common/gridenums.hh> // for GhostEntity
 
 #include <dumux/common/reservedblockvector.hh>
@@ -36,6 +38,7 @@
 #include <dumux/common/typetraits/utility.hh>
 #include <dumux/assembly/diffmethod.hh>
 #include <dumux/assembly/fvlocalassemblerbase.hh>
+#include <dumux/discretization/staggered/elementsolution.hh>
 
 namespace Dumux {
 
diff --git a/dumux/porousmediumflow/1pnc/iofields.hh b/dumux/porousmediumflow/1pnc/iofields.hh
index c48ba433c8e4282cbbb63bef2df52d7c14af09f5..f442e41044e838ee89ae43a696e3740bbce30cb3 100644
--- a/dumux/porousmediumflow/1pnc/iofields.hh
+++ b/dumux/porousmediumflow/1pnc/iofields.hh
@@ -25,7 +25,7 @@
 #define DUMUX_ONEPNC_IO_FIELDS_HH
 
 #include <string>
-
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/2p1c/primaryvariableswitch.hh b/dumux/porousmediumflow/2p1c/primaryvariableswitch.hh
index 53724af63e5a3386cfef070a1ce2bdd426271d33..238357d04e19abe1ba32abcc99f20bd0faa1b97b 100644
--- a/dumux/porousmediumflow/2p1c/primaryvariableswitch.hh
+++ b/dumux/porousmediumflow/2p1c/primaryvariableswitch.hh
@@ -26,6 +26,7 @@
 
 #include <iostream>
 
+#include <dumux/porousmediumflow/2p/formulation.hh>
 #include <dumux/porousmediumflow/compositional/primaryvariableswitch.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/3p/iofields.hh b/dumux/porousmediumflow/3p/iofields.hh
index 3b8138622a194e5078670d48ba4bdf56862c9ae2..735115a60d31cdea66c83548de0fbb86e39e09d2 100644
--- a/dumux/porousmediumflow/3p/iofields.hh
+++ b/dumux/porousmediumflow/3p/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_THREEP_IO_FIELDS_HH
 #define DUMUX_THREEP_IO_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/3p3c/iofields.hh b/dumux/porousmediumflow/3p3c/iofields.hh
index 9b24517a1ec7284f017dbf1e03070f7649bdaf9c..d1c0ae3f53afadb6114a31388a72b591e1deaf99 100644
--- a/dumux/porousmediumflow/3p3c/iofields.hh
+++ b/dumux/porousmediumflow/3p3c/iofields.hh
@@ -24,6 +24,8 @@
 #ifndef DUMUX_THREEPTHREEC_IO_FIELDS_HH
 #define DUMUX_THREEPTHREEC_IO_FIELDS_HH
 
+#include <array>
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/compositional/primaryvariableswitch.hh b/dumux/porousmediumflow/compositional/primaryvariableswitch.hh
index 6b20f89266170dd36c0c1544fd60898a66f7e0f6..daf8668dd4d706702b57576d087bef3b7aae4e1a 100644
--- a/dumux/porousmediumflow/compositional/primaryvariableswitch.hh
+++ b/dumux/porousmediumflow/compositional/primaryvariableswitch.hh
@@ -24,6 +24,8 @@
 #ifndef DUMUX_PRIMARY_VARIABLE_SWITCH_HH
 #define DUMUX_PRIMARY_VARIABLE_SWITCH_HH
 
+#include <iostream>
+
 #include <dune/common/exceptions.hh>
 #include <dune/common/fvector.hh>
 #include <dumux/discretization/method.hh>
diff --git a/dumux/porousmediumflow/mineralization/iofields.hh b/dumux/porousmediumflow/mineralization/iofields.hh
index 62124d295b8d040224c81f4c551980331a6ca308..7d11bc4c333c6b35a9911dc630fa5a968fd0dfc2 100644
--- a/dumux/porousmediumflow/mineralization/iofields.hh
+++ b/dumux/porousmediumflow/mineralization/iofields.hh
@@ -25,6 +25,7 @@
 #ifndef DUMUX_MINERALIZATION_IO_FIELDS_HH
 #define DUMUX_MINERALIZATION_IO_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/mineralization/model.hh b/dumux/porousmediumflow/mineralization/model.hh
index 45f6dd59421a89a55338e54381ca63a26ed5d129..e93e2ddc42829e8c83ce99de705792da7be26edd 100644
--- a/dumux/porousmediumflow/mineralization/model.hh
+++ b/dumux/porousmediumflow/mineralization/model.hh
@@ -30,6 +30,8 @@
 #ifndef DUMUX_MINERALIZATION_MODEL_HH
 #define DUMUX_MINERALIZATION_MODEL_HH
 
+#include <string>
+
 namespace Dumux {
 
 /*!
diff --git a/dumux/porousmediumflow/mpnc/iofields.hh b/dumux/porousmediumflow/mpnc/iofields.hh
index ee9d59c61a40a7a2cd2a03de779bb0739529cccc..2d1b54bc9159f213ce773e6475d79ffaad572fb6 100644
--- a/dumux/porousmediumflow/mpnc/iofields.hh
+++ b/dumux/porousmediumflow/mpnc/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_MPNC_IO_FIELDS_HH
 #define DUMUX_MPNC_IO_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/nonequilibrium/iofields.hh b/dumux/porousmediumflow/nonequilibrium/iofields.hh
index bece5487af87212978d1c8b8951b96f903e2bcf2..514d828143c978b047e1ec9d4c2b284bd3fe463f 100644
--- a/dumux/porousmediumflow/nonequilibrium/iofields.hh
+++ b/dumux/porousmediumflow/nonequilibrium/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_NONEQUILBRIUM_OUTPUT_FIELDS_HH
 #define DUMUX_NONEQUILBRIUM_OUTPUT_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/nonisothermal/iofields.hh b/dumux/porousmediumflow/nonisothermal/iofields.hh
index ed979301a3b4a2a2c31780ff5abcca724d54c68e..c04640028042cfbf465fd34ee81e6ad3c54f7ba9 100644
--- a/dumux/porousmediumflow/nonisothermal/iofields.hh
+++ b/dumux/porousmediumflow/nonisothermal/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_ENERGY_OUTPUT_FIELDS_HH
 #define DUMUX_ENERGY_OUTPUT_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/nonisothermal/model.hh b/dumux/porousmediumflow/nonisothermal/model.hh
index 12d5cfdf0e995111b803c170773acf684aea44cf..f22172f11ad4cf6d25aea05215d3181c71199a2d 100644
--- a/dumux/porousmediumflow/nonisothermal/model.hh
+++ b/dumux/porousmediumflow/nonisothermal/model.hh
@@ -53,6 +53,7 @@
 #ifndef DUMUX_NONISOTHERMAL_MODEL_HH
 #define DUMUX_NONISOTHERMAL_MODEL_HH
 
+#include <string>
 #include <dumux/porousmediumflow/nonisothermal/indices.hh>
 
 namespace Dumux {
diff --git a/dumux/porousmediumflow/sequential/gridadapt.hh b/dumux/porousmediumflow/sequential/gridadapt.hh
index 5b4e604c3eeb7c4b1d2be98a7e32b46012ad8c9b..78a79a94c4a1d4e3f9579301b3d6468eeccf2012 100644
--- a/dumux/porousmediumflow/sequential/gridadapt.hh
+++ b/dumux/porousmediumflow/sequential/gridadapt.hh
@@ -23,9 +23,11 @@
 #ifndef DUMUX_GRIDADAPT_HH
 #define DUMUX_GRIDADAPT_HH
 
+#include <unordered_map>
+#include <dune/grid/common/partitionset.hh>
+
 #include "properties.hh"
 #include "gridadaptproperties.hh"
-#include <unordered_map>
 
 namespace Dumux
 {
diff --git a/dumux/porousmediumflow/sequential/onemodelproblem.hh b/dumux/porousmediumflow/sequential/onemodelproblem.hh
index 1d0fa37f5c1065bf024e3a15baa9366615329bf7..9e24db747b1375f7b0488219f258ebc42f22040e 100644
--- a/dumux/porousmediumflow/sequential/onemodelproblem.hh
+++ b/dumux/porousmediumflow/sequential/onemodelproblem.hh
@@ -20,6 +20,7 @@
 #ifndef DUMUX_ONE_MODEL_PROBLEM_HH
 #define DUMUX_ONE_MODEL_PROBLEM_HH
 
+#include <dune/common/shared_ptr.hh>
 #include <dumux/common/properties/propertysystemmacros.hh>
 #include <dumux/porousmediumflow/sequential/properties.hh>
 #include <dumux/io/vtkmultiwriter.hh>
diff --git a/dumux/porousmediumflow/sequential/variableclassadaptive.hh b/dumux/porousmediumflow/sequential/variableclassadaptive.hh
index bb0d26f0cfe3e4b31dc5973e4e225e6e04123275..1bddd21a7fffdc65b260938c7f43ce45efb5bf9f 100644
--- a/dumux/porousmediumflow/sequential/variableclassadaptive.hh
+++ b/dumux/porousmediumflow/sequential/variableclassadaptive.hh
@@ -19,6 +19,7 @@
 #ifndef DUMUX_VARIABLECLASS_ADAPTIVE_HH
 #define DUMUX_VARIABLECLASS_ADAPTIVE_HH
 
+#include <dune/grid/common/partitionset.hh>
 #include <dune/grid/utility/persistentcontainer.hh>
 #include <dumux/linear/vectorexchange.hh>
 #include "variableclass.hh"
diff --git a/dumux/porousmediumflow/tracer/iofields.hh b/dumux/porousmediumflow/tracer/iofields.hh
index 94cae16f18c8ece22a12d0803376a94da7392cac..98718ad4c807354768cfbccbc8f1c3fd99661e45 100644
--- a/dumux/porousmediumflow/tracer/iofields.hh
+++ b/dumux/porousmediumflow/tracer/iofields.hh
@@ -26,6 +26,7 @@
 
 #include <string>
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {
diff --git a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
index af68fdfed982a6db60454064eae2001f7ec93e48..80351ef5f0b801dd1efd650db37d92b756a35032 100644
--- a/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_1p/problem.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_ONEP_SUB_TEST_PROBLEM_HH
 #define DUMUX_ONEP_SUB_TEST_PROBLEM_HH
 
+#include <dune/common/indices.hh>
 #include <dumux/porousmediumflow/problem.hh>
 #include "spatialparams.hh"
 
diff --git a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
index f63c5e2e7dfdff10a65246f929724c13100fe9b0..08dfa176f0050fc3bdf4bb426f511c4f9283dc4c 100644
--- a/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
+++ b/test/multidomain/boundary/darcydarcy/1p_2p/problem.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_ONEP_SUB_TEST_PROBLEM_HH
 #define DUMUX_ONEP_SUB_TEST_PROBLEM_HH
 
+#include <dune/common/indices.hh>
 #include <dumux/porousmediumflow/problem.hh>
 #include "spatialparams.hh"
 
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
index 8db08d2972fac18df2584d9f08ba24404f95ad15..1355704c0990da84b84f83ebda1c5b09e90517fd 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_darcy.hh
@@ -27,6 +27,7 @@
 #include <dune/grid/yaspgrid.hh>
 
 #include <dumux/discretization/cellcentered/tpfa/properties.hh>
+#include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>
 
 #include <dumux/porousmediumflow/2p2c/model.hh>
 #include <dumux/porousmediumflow/problem.hh>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
index 7bacec4fd6af40ceb2d3fe5c8de6740d977ea46d..332558984fc0008ce110e6279395ca1f5cd07daf 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/problem_stokes.hh
@@ -32,6 +32,7 @@
 #include <dumux/freeflow/navierstokes/problem.hh>
 #include <dumux/discretization/staggered/freeflow/properties.hh>
 #include <dumux/freeflow/compositional/navierstokesncmodel.hh>
+#include <dumux/multidomain/boundary/stokesdarcy/couplingdata.hh>
 
 namespace Dumux
 {
diff --git a/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh b/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
index fca4b0bee3ce693e7584970f94fb32a56fe9c08b..4b3342413a5dd6f73b9631e8c89cef5ba7792987 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/problem_bloodflow.hh
@@ -39,6 +39,8 @@
 #include <dumux/material/components/constant.hh>
 #include <dumux/material/fluidsystems/1pliquid.hh>
 
+#include <dumux/multidomain/embedded/couplingmanager1d3d.hh> // for coupling mode
+
 #include "spatialparams_bloodflow.hh"
 
 namespace Dumux {
diff --git a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
index 5f490de02f2aed8652a994023534715fe50df047..2b9a66ba8ef69e78435e53e71b27414b875c225f 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
+++ b/test/multidomain/embedded/1d3d/1p_1p/problem_tissue.hh
@@ -44,6 +44,8 @@
 #include <dumux/material/components/constant.hh>
 #include <dumux/material/fluidsystems/1pliquid.hh>
 
+#include <dumux/multidomain/embedded/couplingmanager1d3d.hh> // for coupling mode
+
 #include "spatialparams_tissue.hh"
 
 namespace Dumux {
diff --git a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
index 1b3376a1067471668f2809a568357e1491a362d0..00cd079572db0cddf3f90dd8798c6e9188008ce9 100644
--- a/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
+++ b/test/multidomain/facet/tracer_tracer/tracerfluidsystem.hh
@@ -23,6 +23,7 @@
 #ifndef DUMUX_TEST_TPFAFACETCOUPLING_TRACER_FLUIDSYSTEM_HH
 #define DUMUX_TEST_TPFAFACETCOUPLING_TRACER_FLUIDSYSTEM_HH
 
+#include <dumux/common/properties.hh>
 #include <dumux/material/fluidsystems/base.hh>
 
 namespace Dumux {
diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
index cf51ae7517972d8124bb50a78c94188cfbdb464a..4a505b6d2aa4622e73e2f85ec4f72480cc4d509c 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
@@ -26,6 +26,7 @@
 
 #include <dune/grid/yaspgrid.hh>
 
+#include <dumux/common/quad.hh>
 #include <dumux/discretization/cellcentered/tpfa/properties.hh>
 #include <dumux/discretization/cellcentered/mpfa/properties.hh>
 #include <dumux/discretization/box/properties.hh>
diff --git a/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh b/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
index 64ab5201e102d75f01bd1428e13df6f7ed6ebf56..3802455deb069944d5c1232dbeeb98dc035dd8a4 100644
--- a/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
+++ b/test/porousmediumflow/2p/implicit/cornerpoint/problem.hh
@@ -23,6 +23,7 @@
 #ifndef DUMUX_TWOP_CORNERPOINT_TEST_PROBLEM_HH
 #define DUMUX_TWOP_CORNERPOINT_TEST_PROBLEM_HH
 
+#if HAVE_OPM_GRID
 #include <opm/grid/CpGrid.hpp>
 
 #include <dumux/discretization/cellcentered/tpfa/properties.hh>
@@ -264,4 +265,8 @@ private:
 
 } // end namespace Dumux
 
+#else
+#warning "The opm-grid module is needed to use this class!"
+#endif
+
 #endif
diff --git a/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh b/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
index 52873727f9aa2d3e4617b8f198a336c2e5e46bcc..be0a829f8b054f8ff3532f7becd22c5e0107cca1 100644
--- a/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/cornerpoint/spatialparams.hh
@@ -23,6 +23,7 @@
 #ifndef DUMUX_TWOP_CORNERPOINT_TEST_SPATIAL_PARAMS_HH
 #define DUMUX_TWOP_CORNERPOINT_TEST_SPATIAL_PARAMS_HH
 
+#if HAVE_OPM_GRID
 #include <opm/parser/eclipse/Deck/Deck.hpp>
 
 #include <dumux/material/spatialparams/fv.hh>
@@ -202,4 +203,8 @@ private:
 
 } // end namespace Dumux
 
+#else
+#warning "The opm-grid module is needed to use this class!"
+#endif
+
 #endif
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/iofields.hh b/test/porousmediumflow/2p2c/implicit/mpnccomparison/iofields.hh
index 8f42a26678436aa4ddeea0ee46b1aac372324419..de56ae98b8b29e661145ca4b34ae3995804331b1 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/iofields.hh
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/iofields.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_TWOPTWOC_MPNC_IO_FIELDS_HH
 #define DUMUX_TWOPTWOC_MPNC_IO_FIELDS_HH
 
+#include <dune/common/deprecated.hh>
 #include <dumux/io/name.hh>
 
 namespace Dumux {