diff --git a/dumux/implicit/1p/1plocalresidual.hh b/dumux/implicit/1p/1plocalresidual.hh
index db5fdf10f861ead98597dd839d8b49f24ba01e00..131390d8f00283fb52597dc83b885c25d19ffb19 100644
--- a/dumux/implicit/1p/1plocalresidual.hh
+++ b/dumux/implicit/1p/1plocalresidual.hh
@@ -25,9 +25,6 @@
 #ifndef DUMUX_1P_LOCAL_RESIDUAL_HH
 #define DUMUX_1P_LOCAL_RESIDUAL_HH
 
-#include <dumux/implicit/box/boxlocalresidual.hh>
-
-#include "1pvolumevariables.hh"
 #include "1pproperties.hh"
 
 namespace Dumux
diff --git a/dumux/implicit/1p/1pmodel.hh b/dumux/implicit/1p/1pmodel.hh
index 01603e78c22407c15dd68fed3c78d0b11caf29ed..a422c957f66ea510fdd5b1fe508ff632622996d3 100644
--- a/dumux/implicit/1p/1pmodel.hh
+++ b/dumux/implicit/1p/1pmodel.hh
@@ -27,9 +27,7 @@
 #ifndef DUMUX_1P_MODEL_HH
 #define DUMUX_1P_MODEL_HH
 
-#include <dumux/boxmodels/common/boxmodel.hh>
-
-#include "1plocalresidual.hh"
+#include "1pproperties.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/1p/1ppropertydefaults.hh b/dumux/implicit/1p/1ppropertydefaults.hh
index 50746b7baf64d6286c4d6ceb88bb278b96e5b054..2d9c3d289a5fae3e241b09906d109e5fee53a429 100644
--- a/dumux/implicit/1p/1ppropertydefaults.hh
+++ b/dumux/implicit/1p/1ppropertydefaults.hh
@@ -32,7 +32,6 @@
 #include "1pmodel.hh"
 #include "1plocalresidual.hh"
 #include "1pvolumevariables.hh"
-#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 #include "1pindices.hh"
 
 #include <dumux/material/fluidsystems/gasphase.hh>
@@ -40,6 +39,7 @@
 #include <dumux/material/components/nullcomponent.hh>
 #include <dumux/material/fluidsystems/1pfluidsystem.hh>
 #include <dumux/material/spatialparams/implicitspatialparams1p.hh>
+#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 
 namespace Dumux
 {
diff --git a/dumux/implicit/1p2c/1p2clocalresidual.hh b/dumux/implicit/1p2c/1p2clocalresidual.hh
index 815dd0a15678d6c2a7f1c0f1c045c34d4d67319b..44c6b6663c186c26b5df73fde78736730a1c830f 100644
--- a/dumux/implicit/1p2c/1p2clocalresidual.hh
+++ b/dumux/implicit/1p2c/1p2clocalresidual.hh
@@ -26,15 +26,7 @@
 #ifndef DUMUX_ONEP_TWOC_LOCAL_RESIDUAL_HH
 #define DUMUX_ONEP_TWOC_LOCAL_RESIDUAL_HH
 
-#include <dumux/boxmodels/common/boxmodel.hh>
-
-#include <dumux/implicit/1p2c/1p2cproperties.hh>
-#include <dumux/implicit/1p2c/1p2cvolumevariables.hh>
-#include <dumux/implicit/1p2c/1p2cfluxvariables.hh>
-
-#include <dune/common/collectivecommunication.hh>
-#include <vector>
-#include <iostream>
+#include "1p2cproperties.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/1p2c/1p2cmodel.hh b/dumux/implicit/1p2c/1p2cmodel.hh
index 75d726463875f205a2a7a9fc33cdc529fd028c82..f347ef16c1cbab3bdf3cca9aa3d7e2e211ea752a 100644
--- a/dumux/implicit/1p2c/1p2cmodel.hh
+++ b/dumux/implicit/1p2c/1p2cmodel.hh
@@ -28,9 +28,6 @@
 #define DUMUX_ONEP_TWOC_MODEL_HH
 
 #include "1p2cproperties.hh"
-#include "1p2clocalresidual.hh"
-
-#include <dumux/boxmodels/common/boxmodel.hh>
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2p/2plocalresidual.hh b/dumux/implicit/2p/2plocalresidual.hh
index c72e5046c87fe192a1c68ea4bc0daceffe8475c8..f4df17af595a6c4973a06b4bd3ef8eda810ffb26 100644
--- a/dumux/implicit/2p/2plocalresidual.hh
+++ b/dumux/implicit/2p/2plocalresidual.hh
@@ -24,8 +24,6 @@
 #ifndef DUMUX_TWOP_LOCAL_RESIDUAL_BASE_HH
 #define DUMUX_TWOP_LOCAL_RESIDUAL_BASE_HH
 
-#include <dumux/boxmodels/common/boxmodel.hh>
-
 #include "2pproperties.hh"
 
 namespace Dumux
diff --git a/dumux/implicit/2p/2pmodel.hh b/dumux/implicit/2p/2pmodel.hh
index a045ae796e34d9244f3cf5327a5716c94509511a..c6b2375aa383c381451c17cc0428610164b1f018 100644
--- a/dumux/implicit/2p/2pmodel.hh
+++ b/dumux/implicit/2p/2pmodel.hh
@@ -27,7 +27,6 @@
 #define DUMUX_TWOP_MODEL_HH
 
 #include "2pproperties.hh"
-#include "2plocalresidual.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2p/2ppropertydefaults.hh b/dumux/implicit/2p/2ppropertydefaults.hh
index c9deb8c49a7c64d4f996c8c5c81bc5929a210de1..288754d10905e89dcb831c9647e9bb5ba8c07140 100644
--- a/dumux/implicit/2p/2ppropertydefaults.hh
+++ b/dumux/implicit/2p/2ppropertydefaults.hh
@@ -30,9 +30,9 @@
 
 #include "2pmodel.hh"
 #include "2pindices.hh"
-#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 #include "2pvolumevariables.hh"
 #include "2pproperties.hh"
+#include "2plocalresidual.hh"
 
 #include <dumux/material/fluidsystems/gasphase.hh>
 #include <dumux/material/fluidsystems/liquidphase.hh>
@@ -40,6 +40,7 @@
 #include <dumux/material/fluidsystems/2pimmisciblefluidsystem.hh>
 #include <dumux/material/fluidstates/immisciblefluidstate.hh>
 #include <dumux/material/spatialparams/implicitspatialparams.hh>
+#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2p2c/2p2clocalresidual.hh b/dumux/implicit/2p2c/2p2clocalresidual.hh
index d36494883f10c84618339cde1355aca940c97ba1..f1b293265941e579a4c1450353cc33671b08d2c3 100644
--- a/dumux/implicit/2p2c/2p2clocalresidual.hh
+++ b/dumux/implicit/2p2c/2p2clocalresidual.hh
@@ -26,16 +26,7 @@
 #ifndef DUMUX_2P2C_LOCAL_RESIDUAL_BASE_HH
 #define DUMUX_2P2C_LOCAL_RESIDUAL_BASE_HH
 
-#include <dumux/boxmodels/common/boxmodel.hh>
-#include <dumux/common/math.hh>
-
 #include "2p2cproperties.hh"
-#include "2p2cvolumevariables.hh"
-#include "2p2cfluxvariables.hh"
-#include "2p2cnewtoncontroller.hh"
-
-#include <iostream>
-#include <vector>
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2p2c/2p2cmodel.hh b/dumux/implicit/2p2c/2p2cmodel.hh
index d7c295649d7c243265c7ff2df0f98f0af1d31fe7..0888a423102a8d2df31fc8dce158d064a55359ed 100644
--- a/dumux/implicit/2p2c/2p2cmodel.hh
+++ b/dumux/implicit/2p2c/2p2cmodel.hh
@@ -25,7 +25,7 @@
 #define DUMUX_2P2C_MODEL_HH
 
 #include "2p2cproperties.hh"
-#include "2p2clocalresidual.hh"
+#include "2p2cindices.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2p2c/2p2cpropertydefaults.hh b/dumux/implicit/2p2c/2p2cpropertydefaults.hh
index 68f324695af546b6280af2a123845e9e92ce8bb2..34d58b1c40eb53ba29926cb95bf8d062bab270bc 100644
--- a/dumux/implicit/2p2c/2p2cpropertydefaults.hh
+++ b/dumux/implicit/2p2c/2p2cpropertydefaults.hh
@@ -33,6 +33,7 @@
 #include "2p2cfluxvariables.hh"
 #include "2p2cvolumevariables.hh"
 #include "2p2cproperties.hh"
+#include "2p2clocalresidual.hh"
 #include "2p2cnewtoncontroller.hh"
 
 #include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
diff --git a/dumux/implicit/2p2cni/2p2cnilocalresidual.hh b/dumux/implicit/2p2cni/2p2cnilocalresidual.hh
index 8f4ee7f3056879e908bd3a983994f24cee65b76a..9ec548bb03f697763382cf8f37c1db3e515ea67e 100644
--- a/dumux/implicit/2p2cni/2p2cnilocalresidual.hh
+++ b/dumux/implicit/2p2cni/2p2cnilocalresidual.hh
@@ -26,12 +26,9 @@
 #ifndef DUMUX_NEW_2P2CNI_LOCAL_RESIDUAL_HH
 #define DUMUX_NEW_2P2CNI_LOCAL_RESIDUAL_HH
 
+#include "2p2cniproperties.hh"
 #include <dumux/implicit/2p2c/2p2clocalresidual.hh>
 
-#include <dumux/implicit/2p2cni/2p2cnivolumevariables.hh>
-#include <dumux/implicit/2p2cni/2p2cnifluxvariables.hh>
-#include <dumux/implicit/2p2cni/2p2cniproperties.hh>
-
 namespace Dumux
 {
 /*!
diff --git a/dumux/implicit/2pdfm/2pdfmmodel.hh b/dumux/implicit/2pdfm/2pdfmmodel.hh
index 744d888c4de5558d631266eccd68896af6e97ee2..4aa3c4de8da4762d127ac75603525868003aa092 100644
--- a/dumux/implicit/2pdfm/2pdfmmodel.hh
+++ b/dumux/implicit/2pdfm/2pdfmmodel.hh
@@ -26,10 +26,7 @@
 #define DUMUX_BOXMODELS_2PDFM_MODEL_HH
 
 #include <dumux/implicit/2p/2pmodel.hh>
-
 #include "2pdfmproperties.hh"
-#include "2pdfmlocalresidual.hh"
-#include "2pdfmproblem.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh b/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh
index d583d858ab2ad7037b1086443589162df423f6d5..373f8e733826958e2fdc989d47772f6a1b4de55f 100644
--- a/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh
+++ b/dumux/implicit/2pdfm/2pdfmpropertydefaults.hh
@@ -41,6 +41,7 @@
 #include "2pdfmfluxvariables.hh"
 #include "2pdfmvolumevariables.hh"
 #include "2pdfmproperties.hh"
+#include "2pdfmlocalresidual.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/2pni/2pnilocalresidual.hh b/dumux/implicit/2pni/2pnilocalresidual.hh
index b70c51a2d9a84e50f6807830332c984fe2a33bf4..f59f95ff58b3bca34d168a6276458bfa06760ee9 100644
--- a/dumux/implicit/2pni/2pnilocalresidual.hh
+++ b/dumux/implicit/2pni/2pnilocalresidual.hh
@@ -27,12 +27,8 @@
 #define DUMUX_NEW_2PNI_LOCAL_RESIDUAL_HH
 
 #include "2pniproperties.hh"
-
 #include <dumux/implicit/2p/2plocalresidual.hh>
 
-#include <dumux/implicit/2pni/2pnivolumevariables.hh>
-#include <dumux/implicit/2pni/2pnifluxvariables.hh>
-
 namespace Dumux
 {
 /*!
diff --git a/dumux/implicit/2pni/2pnimodel.hh b/dumux/implicit/2pni/2pnimodel.hh
index bf0e2a14b9c121b1e15f3ba1a7a54876319e8e79..582e1143102f577eca0918a50abe5b808986fc49 100644
--- a/dumux/implicit/2pni/2pnimodel.hh
+++ b/dumux/implicit/2pni/2pnimodel.hh
@@ -25,6 +25,7 @@
 #define DUMUX_2PNI_MODEL_HH
 
 #include <dumux/implicit/2p/2pmodel.hh>
+#include "2pniproperties.hh"
 
 namespace Dumux {
 
diff --git a/dumux/implicit/3p3c/3p3clocalresidual.hh b/dumux/implicit/3p3c/3p3clocalresidual.hh
index 03b0e2474f66552e8b767c0243c4f891e77deba3..dfc5004bc08c126677064701d542eb15760365a1 100644
--- a/dumux/implicit/3p3c/3p3clocalresidual.hh
+++ b/dumux/implicit/3p3c/3p3clocalresidual.hh
@@ -25,20 +25,8 @@
 #ifndef DUMUX_3P3C_LOCAL_RESIDUAL_HH
 #define DUMUX_3P3C_LOCAL_RESIDUAL_HH
 
-#include <dumux/boxmodels/common/boxmodel.hh>
-#include <dumux/common/math.hh>
-
-#include "3p3cproperties.hh"
-#include "3p3cvolumevariables.hh"
-#include "3p3cfluxvariables.hh"
-#include "3p3cnewtoncontroller.hh"
 #include "3p3cproperties.hh"
 
-#include <iostream>
-#include <vector>
-
-//#define VELOCITY_OUTPUT 1 // uncomment this line if an output of the velocity is needed
-
 namespace Dumux
 {
 /*!
diff --git a/dumux/implicit/3p3c/3p3cmodel.hh b/dumux/implicit/3p3c/3p3cmodel.hh
index b973451b1c9e6e80ebb1a2988586dccc102fe5d3..e80cbe387df96a7d059cf38d7e4a2a85e977bcd1 100644
--- a/dumux/implicit/3p3c/3p3cmodel.hh
+++ b/dumux/implicit/3p3c/3p3cmodel.hh
@@ -27,10 +27,7 @@
 #ifndef DUMUX_3P3C_MODEL_HH
 #define DUMUX_3P3C_MODEL_HH
 
-#include <dumux/material/fluidstates/compositionalfluidstate.hh>
-
 #include "3p3cproperties.hh"
-#include "3p3clocalresidual.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/3p3c/3p3cpropertydefaults.hh b/dumux/implicit/3p3c/3p3cpropertydefaults.hh
index 689a16024b70f6d13a3ae56f48e8ee6e7f389da8..2e560d66d9ada298a3652640deb3ab63161a3511 100644
--- a/dumux/implicit/3p3c/3p3cpropertydefaults.hh
+++ b/dumux/implicit/3p3c/3p3cpropertydefaults.hh
@@ -36,7 +36,7 @@
 #include "3p3cvolumevariables.hh"
 #include "3p3cproperties.hh"
 #include "3p3cnewtoncontroller.hh"
-// #include "3p3cboundaryvariables.hh"
+#include "3p3clocalresidual.hh"
 
 #include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 #include <dumux/material/spatialparams/implicitspatialparams.hh>
diff --git a/dumux/implicit/3p3cni/3p3cnilocalresidual.hh b/dumux/implicit/3p3cni/3p3cnilocalresidual.hh
index 794d1e7df6c734e445a322cca2324477b0380dfa..d88b18283917f73e542e5654d7f96e05e2f95ab8 100644
--- a/dumux/implicit/3p3cni/3p3cnilocalresidual.hh
+++ b/dumux/implicit/3p3cni/3p3cnilocalresidual.hh
@@ -26,13 +26,8 @@
 #ifndef DUMUX_NEW_3P3CNI_LOCAL_RESIDUAL_HH
 #define DUMUX_NEW_3P3CNI_LOCAL_RESIDUAL_HH
 
-#include <dumux/implicit/3p3c/3p3clocalresidual.hh>
-
-
-#include "3p3cnivolumevariables.hh"
-#include "3p3cnifluxvariables.hh"
-
 #include "3p3cniproperties.hh"
+#include <dumux/implicit/3p3c/3p3clocalresidual.hh>
 
 namespace Dumux
 {
diff --git a/dumux/implicit/3p3cni/3p3cnimodel.hh b/dumux/implicit/3p3cni/3p3cnimodel.hh
index e3e106cfbf113fd9c40d5c63485216aba9f1d050..b7669825c8399c0322d06797076ba60ed58ac8a1 100644
--- a/dumux/implicit/3p3cni/3p3cnimodel.hh
+++ b/dumux/implicit/3p3cni/3p3cnimodel.hh
@@ -24,6 +24,7 @@
 #ifndef DUMUX_NEW_3P3CNI_MODEL_HH
 #define DUMUX_NEW_3P3CNI_MODEL_HH
 
+#include "3p3cniproperties.hh"
 #include <dumux/implicit/3p3c/3p3cmodel.hh>
 
 namespace Dumux {
diff --git a/dumux/implicit/box/boxpropertydefaults.hh b/dumux/implicit/box/boxpropertydefaults.hh
index 1487bce6d4d3705ed4e875573604c43ce632cbeb..5cdcdf1c647672634eec1aac772a93083d3efd32 100644
--- a/dumux/implicit/box/boxpropertydefaults.hh
+++ b/dumux/implicit/box/boxpropertydefaults.hh
@@ -37,9 +37,12 @@
 
 namespace Dumux {
 
-// forward declaration
-template<class TypeTag>
-class BoxModel;
+// forward declarations
+template<class TypeTag> class BoxModel;
+template<class TypeTag> class BoxLocalResidual;
+template<class TypeTag> class BoxElementBoundaryTypes;
+template<class TypeTag> class BoxElementVolumeVariables;
+template<class TypeTag> class BoxFVElementGeometry;
 
 namespace Properties {
 //! Set the default for the FVElementGeometry
diff --git a/dumux/implicit/cellcentered/ccpropertydefaults.hh b/dumux/implicit/cellcentered/ccpropertydefaults.hh
index 3f63566d089fa1378dcbf6a55a0b965840964bbd..3e74ed637e566edf90ad1a52ac0babf2562c75f2 100644
--- a/dumux/implicit/cellcentered/ccpropertydefaults.hh
+++ b/dumux/implicit/cellcentered/ccpropertydefaults.hh
@@ -41,9 +41,12 @@
 
 namespace Dumux {
 
-// forward declaration
-template<class TypeTag>
-class CCModel;
+// forward declarations
+template<class TypeTag> class CCModel;
+template<class TypeTag> class CCLocalResidual;
+template<class TypeTag> class CCElementBoundaryTypes;
+template<class TypeTag> class CCElementVolumeVariables;
+template<class TypeTag> class CCFVElementGeometry;
 
 namespace Properties {
 //! Set the default for the FVElementGeometry
diff --git a/dumux/implicit/common/implicitlocaljacobian.hh b/dumux/implicit/common/implicitlocaljacobian.hh
index a285c9f2844e9a2eeee49537a1c28a614ffcd4a2..d686de8c021d1f36bc1c2c68ad06b87884740b52 100644
--- a/dumux/implicit/common/implicitlocaljacobian.hh
+++ b/dumux/implicit/common/implicitlocaljacobian.hh
@@ -25,6 +25,9 @@
 
 #include <dune/istl/matrix.hh>
 #include <dumux/common/math.hh>
+#include <dumux/common/valgrind.hh>
+
+#include "implicitproperties.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/mpnc/mpnclocalresidual.hh b/dumux/implicit/mpnc/mpnclocalresidual.hh
index 5513b4452992988ac3a23dc5d815a11ba8245b20..f67fed5862ea0e03edd736403d65610e474f2ac3 100644
--- a/dumux/implicit/mpnc/mpnclocalresidual.hh
+++ b/dumux/implicit/mpnc/mpnclocalresidual.hh
@@ -23,9 +23,7 @@
 #include "diffusion/diffusion.hh"
 #include "energy/mpnclocalresidualenergy.hh"
 #include "mass/mpnclocalresidualmass.hh"
-
-#include <dumux/boxmodels/common/boxmodel.hh>
-#include <dumux/common/math.hh>
+#include "mpncproperties.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/richards/richardslocalresidual.hh b/dumux/implicit/richards/richardslocalresidual.hh
index f845f940e7c1e2df38150baeb8a2a07376904164..3194554327eda42945cb0b9c6fbdffe49b0f1c85 100644
--- a/dumux/implicit/richards/richardslocalresidual.hh
+++ b/dumux/implicit/richards/richardslocalresidual.hh
@@ -24,9 +24,7 @@
 #ifndef DUMUX_RICHARDS_LOCAL_RESIDUAL_HH
 #define DUMUX_RICHARDS_LOCAL_RESIDUAL_HH
 
-#include <dumux/implicit/box/boxlocalresidual.hh>
-
-#include "richardsvolumevariables.hh"
+#include "richardsproperties.hh"
 
 namespace Dumux
 {
diff --git a/dumux/implicit/richards/richardspropertydefaults.hh b/dumux/implicit/richards/richardspropertydefaults.hh
index b852bd16f5aab55b0728f35dad89d4992c4b68da..b7cc9c84a45d4cd539cefedf89f2d8579aa964ac 100644
--- a/dumux/implicit/richards/richardspropertydefaults.hh
+++ b/dumux/implicit/richards/richardspropertydefaults.hh
@@ -31,14 +31,15 @@
 #include "richardsmodel.hh"
 #include "richardsproblem.hh"
 #include "richardsindices.hh"
-#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 #include "richardsvolumevariables.hh"
 #include "richardsproperties.hh"
 #include "richardsnewtoncontroller.hh"
+#include "richardslocalresidual.hh"
 
 #include <dumux/material/components/nullcomponent.hh>
 #include <dumux/material/fluidsystems/2pimmisciblefluidsystem.hh>
 #include <dumux/material/spatialparams/implicitspatialparams.hh>
+#include <dumux/implicit/common/implicitdarcyfluxvariables.hh>
 
 namespace Dumux
 {