diff --git a/dumux/boxmodels/common/boxvolumevariables.hh b/dumux/boxmodels/common/boxvolumevariables.hh
index 2044415b8271f31f186cf715d4e32da010aef972..0c6eda10814c4e2d3ee1735ade66cb564c46b6bf 100644
--- a/dumux/boxmodels/common/boxvolumevariables.hh
+++ b/dumux/boxmodels/common/boxvolumevariables.hh
@@ -1,3 +1,57 @@
-#warning This file is deprecated. Include dumux/implicit/box/boxvolumevariables.hh instead.
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief Base class for the model specific class which provides
+ *        access to all volume averaged quantities.
+ */
+#ifndef DUMUX_BOX_VOLUME_VARIABLES_HH
+#define DUMUX_BOX_VOLUME_VARIABLES_HH
 
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
+
+namespace Dumux
+{
+
+/*!
+ * \ingroup BoxModel
+ * \ingroup BoxVolumeVariables
+ * \brief Base class for the model specific class which provides
+ *        access to all volume averaged quantities.
+ */
+template <class TypeTag>
+class BoxVolumeVariables : public ImplicitVolumeVariables<TypeTag>
+{
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
+
+public:
+    DUNE_DEPRECATED_MSG("Use ImplicitVolumeVariables from "
+                        "dumux/implicit/common/implicitvolumevariables.hh.")
+    BoxVolumeVariables() : ParentType() {}
+
+    DUNE_DEPRECATED_MSG("Use ImplicitVolumeVariables from "
+                        "dumux/implicit/common/implicitvolumevariables.hh.")
+    BoxVolumeVariables(const BoxVolumeVariables &v)
+    : ParentType(v) {}
+};
+
+} // end namepace
+
+#endif
diff --git a/dumux/freeflow/stokes/stokesvolumevariables.hh b/dumux/freeflow/stokes/stokesvolumevariables.hh
index f3aade58833547c2ad6c0ac00fb4561c3ffad395..e18357526360776750570a66613ce5d114d1dbe3 100644
--- a/dumux/freeflow/stokes/stokesvolumevariables.hh
+++ b/dumux/freeflow/stokes/stokesvolumevariables.hh
@@ -26,7 +26,7 @@
 #define DUMUX_STOKES_VOLUME_VARIABLES_HH
 
 #include "stokesproperties.hh"
-#include "dumux/implicit/box/boxvolumevariables.hh"
+#include "dumux/implicit/common/implicitvolumevariables.hh"
 
 #include <dumux/material/fluidstates/immisciblefluidstate.hh>
 
diff --git a/dumux/implicit/1p/1pvolumevariables.hh b/dumux/implicit/1p/1pvolumevariables.hh
index 01cbeab00b7809f6c3dee6c1fcdd9856c2ea75d3..cb28a58189ea107f66a07921804188f6b39240be 100644
--- a/dumux/implicit/1p/1pvolumevariables.hh
+++ b/dumux/implicit/1p/1pvolumevariables.hh
@@ -25,7 +25,7 @@
 #define DUMUX_1P_VOLUME_VARIABLES_HH
 
 #include "1pproperties.hh"
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
 
 #include <dumux/material/fluidstates/immisciblefluidstate.hh>
 
@@ -34,14 +34,14 @@ namespace Dumux
 
 /*!
  * \ingroup OnePBoxModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are constant within a
  *        finite volume in the one-phase model.
  */
 template <class TypeTag>
-class OnePVolumeVariables : public BoxVolumeVariables<TypeTag>
+class OnePVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
@@ -59,7 +59,7 @@ public:
     typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> FluidState;
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/1p2c/1p2cvolumevariables.hh b/dumux/implicit/1p2c/1p2cvolumevariables.hh
index bdaf369fb3999b6949f0b8232e8d650b26db3725..9b05aff50cab008032f7e035fdb335d6a98dcd22 100644
--- a/dumux/implicit/1p2c/1p2cvolumevariables.hh
+++ b/dumux/implicit/1p2c/1p2cvolumevariables.hh
@@ -24,7 +24,7 @@
 #ifndef DUMUX_1P2C_VOLUME_VARIABLES_HH
 #define DUMUX_1P2C_VOLUME_VARIABLES_HH
 
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
 #include <dumux/material/fluidstates/compositionalfluidstate.hh>
 
 #include "1p2cproperties.hh"
@@ -34,14 +34,14 @@ namespace Dumux
 
 /*!
  * \ingroup OnePTwoCBoxModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are constant within a
  *        finite volume in the single-phase, two-component model.
  */
 template <class TypeTag>
-class OnePTwoCVolumeVariables : public BoxVolumeVariables<TypeTag>
+class OnePTwoCVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
@@ -74,7 +74,7 @@ public:
     typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState;
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/2p/2pvolumevariables.hh b/dumux/implicit/2p/2pvolumevariables.hh
index b2e093f6a61d3968cae28001b2d588958c4fc19c..114e430e0dd6670605b44fe9b5a043424c88182a 100644
--- a/dumux/implicit/2p/2pvolumevariables.hh
+++ b/dumux/implicit/2p/2pvolumevariables.hh
@@ -27,7 +27,7 @@
 
 #include "2pproperties.hh"
 
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
 
 #include <dune/common/fvector.hh>
 
@@ -35,14 +35,14 @@ namespace Dumux
 {
 /*!
  * \ingroup TwoPBoxModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the two-phase model.
  */
 template <class TypeTag>
-class TwoPVolumeVariables : public BoxVolumeVariables<TypeTag>
+class TwoPVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
@@ -71,7 +71,7 @@ class TwoPVolumeVariables : public BoxVolumeVariables<TypeTag>
 
 public:
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/2p2c/2p2cvolumevariables.hh b/dumux/implicit/2p2c/2p2cvolumevariables.hh
index 1c17a0abc30b4b504ac15b99b66590d7b0d1b0c4..0546e6258f5fe0eda76a9ce150c6a55bcc18e0a1 100644
--- a/dumux/implicit/2p2c/2p2cvolumevariables.hh
+++ b/dumux/implicit/2p2c/2p2cvolumevariables.hh
@@ -44,14 +44,14 @@ namespace Dumux
 
 /*!
  * \ingroup TwoPTwoCModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the two-phase, two-component model.
  */
 template <class TypeTag>
-class TwoPTwoCVolumeVariables : public BoxVolumeVariables<TypeTag>
+class TwoPTwoCVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
@@ -106,7 +106,7 @@ public:
     typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState;
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/2p2cni/2p2cnivolumevariables.hh b/dumux/implicit/2p2cni/2p2cnivolumevariables.hh
index c6228202bfbafcea96519384240859d2a0f3a3f2..6ddf552ea243b6b3a794a8f950dd33ca82806b75 100644
--- a/dumux/implicit/2p2cni/2p2cnivolumevariables.hh
+++ b/dumux/implicit/2p2cni/2p2cnivolumevariables.hh
@@ -33,7 +33,7 @@ namespace Dumux
 
 /*!
  * \ingroup TwoPTwoCNIModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the non-isothermal two-phase, two-component
  *        model.
diff --git a/dumux/implicit/2pdfm/2pdfmvolumevariables.hh b/dumux/implicit/2pdfm/2pdfmvolumevariables.hh
index 68ce6e67959c28babe12ca7e20bcba61a6aaeefc..a3911de2e8a0aa60a5e35ee7d3e5c9483832344d 100644
--- a/dumux/implicit/2pdfm/2pdfmvolumevariables.hh
+++ b/dumux/implicit/2pdfm/2pdfmvolumevariables.hh
@@ -33,7 +33,7 @@ namespace Dumux
 {
 /*!
  * \ingroup TwoPDFMBoxModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the two-phase discrete fracture-matrix model.
  */
@@ -78,7 +78,7 @@ class TwoPDFMVolumeVariables : public TwoPVolumeVariables<TypeTag>
 
 public:
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/2pni/2pnivolumevariables.hh b/dumux/implicit/2pni/2pnivolumevariables.hh
index ae52a6df221d6cfddd84867eae681084885d024c..d3804ab6bec8cb72f26f36b267b771d4c123eec9 100644
--- a/dumux/implicit/2pni/2pnivolumevariables.hh
+++ b/dumux/implicit/2pni/2pnivolumevariables.hh
@@ -32,7 +32,7 @@ namespace Dumux
 
 /*!
  * \ingroup TwoPNIModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are constant within a
  *        finite volume in the non-isothermal two-phase model.
  */
diff --git a/dumux/implicit/3p3c/3p3cvolumevariables.hh b/dumux/implicit/3p3c/3p3cvolumevariables.hh
index 734c3e370b728917a53298864ec75753edb53f76..f4f4ef35708847560ec8824d913ef238ba5f8794 100644
--- a/dumux/implicit/3p3c/3p3cvolumevariables.hh
+++ b/dumux/implicit/3p3c/3p3cvolumevariables.hh
@@ -48,9 +48,9 @@ namespace Dumux
  *        finite volume in the two-phase, two-component model.
  */
 template <class TypeTag>
-class ThreePThreeCVolumeVariables : public BoxVolumeVariables<TypeTag>
+class ThreePThreeCVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
 
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
@@ -106,7 +106,7 @@ public:
 
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/3p3cni/3p3cnivolumevariables.hh b/dumux/implicit/3p3cni/3p3cnivolumevariables.hh
index 67694ca3a1ee682f986ea21f3618c2ecc0951793..499ffb6392d8f192191fe140d8caeb608b394628 100644
--- a/dumux/implicit/3p3cni/3p3cnivolumevariables.hh
+++ b/dumux/implicit/3p3cni/3p3cnivolumevariables.hh
@@ -61,7 +61,7 @@ class ThreePThreeCNIVolumeVariables : public ThreePThreeCVolumeVariables<TypeTag
 
 public:
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/box/boxpropertydefaults.hh b/dumux/implicit/box/boxpropertydefaults.hh
index 70d71b80ec4f5a0ad954a3aa007287215c803db0..49b96ba12db6d10b6c358677b627c877a04ede05 100644
--- a/dumux/implicit/box/boxpropertydefaults.hh
+++ b/dumux/implicit/box/boxpropertydefaults.hh
@@ -35,7 +35,6 @@
 #include "boxlocaljacobian.hh"
 #include "boxlocalresidual.hh"
 #include "boxelementvolumevariables.hh"
-#include "boxvolumevariables.hh"
 #include "boxproperties.hh"
 
 namespace Dumux {
diff --git a/dumux/implicit/box/boxvolumevariables.hh b/dumux/implicit/box/boxvolumevariables.hh
deleted file mode 100644
index 0c0bb6d8f6516e166c31d4ffce1e3613c52be5a1..0000000000000000000000000000000000000000
--- a/dumux/implicit/box/boxvolumevariables.hh
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
-// vi: set et ts=4 sw=4 sts=4:
-/*****************************************************************************
- *   See the file COPYING for full copying permissions.                      *
- *                                                                           *
- *   This program is free software: you can redistribute it and/or modify    *
- *   it under the terms of the GNU General Public License as published by    *
- *   the Free Software Foundation, either version 2 of the License, or       *
- *   (at your option) any later version.                                     *
- *                                                                           *
- *   This program is distributed in the hope that it will be useful,         *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
- *   GNU General Public License for more details.                            *
- *                                                                           *
- *   You should have received a copy of the GNU General Public License       *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
- *****************************************************************************/
-/*!
- * \file
- *
- * \brief Base class for the model specific class which provides
- *        access to all volume averaged quantities.
- */
-#ifndef DUMUX_BOX_VOLUME_VARIABLES_HH
-#define DUMUX_BOX_VOLUME_VARIABLES_HH
-
-#include "boxproperties.hh"
-
-#include <dumux/common/valgrind.hh>
-
-namespace Dumux
-{
-
-/*!
- * \ingroup BoxModel
- * \ingroup BoxVolumeVariables
- * \brief Base class for the model specific class which provides
- *        access to all volume averaged quantities.
- */
-template <class TypeTag>
-class BoxVolumeVariables
-{
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-
-public:
-    // default constructor
-    BoxVolumeVariables()
-    { evalPoint_ = 0; };
-
-    // copy constructor
-    BoxVolumeVariables(const BoxVolumeVariables &v)
-    {
-        evalPoint_ = 0;
-        priVars_ = v.priVars_;
-        extrusionFactor_ = v.extrusionFactor_;
-    };
-
-    /*!
-     * \brief Assignment operator
-     */
-    BoxVolumeVariables &operator=(const BoxVolumeVariables &v)
-    {
-        evalPoint_ = 0;
-        priVars_ = v.priVars_;
-        extrusionFactor_ = v.extrusionFactor_;
-
-        return *this;
-    };
-
-    /*!
-     * \brief Sets the evaluation point used by the local jacobian.
-     *
-     * The evaluation point is only used by semi-smooth models.
-     */
-    void setEvalPoint(const Implementation *ep)
-    {
-        evalPoint_ = ep;
-        Valgrind::CheckDefined(evalPoint_);
-    }
-
-    /*!
-     * \brief Returns the evaluation point used by the local jacobian.
-     *
-     * The evaluation point is only used by semi-smooth models.
-     */
-    const Implementation &evalPoint() const
-    { return (evalPoint_ == 0)?asImp_():*evalPoint_; }
-
-    /*!
-     * \brief Set the volume variables which should be used as initial
-     *        conditions for complex calculations.
-     */
-    void setHint(const Implementation *hint)
-    {};
-
-    /*!
-     * \brief Update all quantities for a given control volume
-     *
-     * \param priVars A vector containing the primary variables for the control volume
-     * \param problem The object specifying the problem which ought to
-     *                be simulated
-     * \param element An element which contains part of the control volume
-     * \param fvGeometry The finite volume geometry for the element
-     * \param scvIdx Local index of the sub control volume which is inside the element
-     * \param isOldSol Specifies whether this is the previous solution or the current one
-     *
-     * \todo Eliminate the 'isOldSol' parameter. This implies that the
-     *       'pseudo-primary variables' must be somehow be stored
-     *       inside the PrimaryVariables. (e.g. we need to know the
-     *       phase state in the 2p2c model)
-     */
-    void update(const PrimaryVariables &priVars,
-                const Problem &problem,
-                const Element &element,
-                const FVElementGeometry &fvGeometry,
-                const int scvIdx,
-                const bool isOldSol)
-    {
-        Valgrind::CheckDefined(priVars);
-        priVars_ = priVars;
-        extrusionFactor_ = problem.boxExtrusionFactor(element, fvGeometry, scvIdx);
-    }
-
-    /*!
-     * \brief Return the vector of primary variables
-     */
-    const PrimaryVariables &priVars() const
-    { return priVars_; }
-
-    /*!
-     * \brief Return a component of primary variable vector
-     *
-     * \param pvIdx The index of the primary variable of interest
-     */
-    Scalar priVar(const int pvIdx) const
-    {
-        return priVars_[pvIdx];
-    }
-
-    /*!
-     * \brief Return how much the sub-control volume is extruded.
-     *
-     * This means the factor by which a lower-dimensional (1D or 2D)
-     * entity needs to be expanded to get a full dimensional cell. The
-     * default is 1.0 which means that 1D problems are actually
-     * thought as pipes with a cross section of 1 m^2 and 2D problems
-     * are assumed to extend 1 m to the back.
-     */
-    Scalar extrusionFactor() const
-    { return extrusionFactor_; }
-
-    /*!
-     * \brief If running in valgrind this makes sure that all
-     *        quantities in the volume variables are defined.
-     */
-    void checkDefined() const
-    {
-#if !defined NDEBUG && HAVE_VALGRIND
-        Valgrind::CheckDefined(priVars_);
-        Valgrind::CheckDefined(evalPoint_);
-        if (evalPoint_ && evalPoint_ != this)
-            evalPoint_->checkDefined();
-#endif
-    };
-
-protected:
-    const Implementation &asImp_() const
-    { return *static_cast<const Implementation*>(this); }
-    Implementation &asImp_()
-    { return *static_cast<Implementation*>(this); }
-
-    // the evaluation point of the local jacobian
-    const Implementation *evalPoint_;
-
-    PrimaryVariables priVars_;
-    Scalar extrusionFactor_;
-};
-
-} // end namepace
-
-#endif
diff --git a/dumux/implicit/co2/co2volumevariables.hh b/dumux/implicit/co2/co2volumevariables.hh
index 3ccac9987ab3ed1afd8a86eb3486c8c5c9a81e1a..3d346443ec22f302830551b3f7d7ea366ba606c9 100644
--- a/dumux/implicit/co2/co2volumevariables.hh
+++ b/dumux/implicit/co2/co2volumevariables.hh
@@ -28,7 +28,7 @@ namespace Dumux
 {
 /*!
  * \ingroup CO2Model
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the non-isothermal two-phase, two-component
  *        model.
@@ -37,7 +37,7 @@ template <class TypeTag>
 class CO2VolumeVariables: public TwoPTwoCVolumeVariables<TypeTag>
 {
     typedef TwoPTwoCVolumeVariables<TypeTag> ParentType;
-    typedef BoxVolumeVariables<TypeTag> BaseClassType;
+    typedef ImplicitVolumeVariables<TypeTag> BaseClassType;
 
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
 
diff --git a/dumux/implicit/co2ni/co2nivolumevariables.hh b/dumux/implicit/co2ni/co2nivolumevariables.hh
index 89222bda2891e9935a2a7cad152f265fa6e130c5..f4a3894548884be094543478457ffff1d2ea813d 100644
--- a/dumux/implicit/co2ni/co2nivolumevariables.hh
+++ b/dumux/implicit/co2ni/co2nivolumevariables.hh
@@ -36,7 +36,7 @@ namespace Dumux
 
 /*!
  * \ingroup CO2NIModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the non-isothermal two-phase, two-component
  *        model.
diff --git a/dumux/implicit/common/implicitpropertydefaults.hh b/dumux/implicit/common/implicitpropertydefaults.hh
index 726a274f53777fe6bbe3c354f35ed332a8fe2962..69bdeb04a1475ade88b8acd1ee26cb210073dc7e 100644
--- a/dumux/implicit/common/implicitpropertydefaults.hh
+++ b/dumux/implicit/common/implicitpropertydefaults.hh
@@ -31,11 +31,9 @@
 #include <dumux/nonlinear/newtoncontroller.hh>
 #include <dumux/common/boundarytypes.hh>
 #include <dumux/common/timemanager.hh>
-#include <dumux/implicit/box/boxvolumevariables.hh>
 
 #include "implicitproperties.hh"
-
-#include <limits>
+#include "implicitvolumevariables.hh"
 
 namespace Dumux {
 
@@ -75,33 +73,25 @@ SET_TYPE_PROP(ImplicitBase,
                                                         Dune::MCMGElementLayout>);
 
 //! The volume variable class, to be overloaded by the model
-SET_TYPE_PROP(BoxModel, VolumeVariables, Dumux::BoxVolumeVariables<TypeTag>);
+SET_TYPE_PROP(BoxModel, VolumeVariables, Dumux::ImplicitVolumeVariables<TypeTag>);
 
-/*!
- * \brief The type of a solution for the whole grid at a fixed time.
- */
+//! The type of a solution for the whole grid at a fixed time
 SET_TYPE_PROP(ImplicitBase,
               SolutionVector,
               Dune::BlockVector<typename GET_PROP_TYPE(TypeTag, PrimaryVariables)>);
 
-/*!
- * \brief The type of a solution for a whole element.
- */
+//! The type of a solution for a whole element
 SET_TYPE_PROP(ImplicitBase,
               ElementSolutionVector,
               Dune::BlockVector<typename GET_PROP_TYPE(TypeTag, PrimaryVariables)>);
 
-/*!
- * \brief A vector of primary variables.
- */
+//! A vector of primary variables
 SET_TYPE_PROP(ImplicitBase,
               PrimaryVariables,
               Dune::FieldVector<typename GET_PROP_TYPE(TypeTag, Scalar),
                                 GET_PROP_VALUE(TypeTag, NumEq)>);
 
-/*!
- * \brief Boundary types at a single degree of freedom.
- */
+//! Boundary types at a single degree of freedom
 SET_TYPE_PROP(ImplicitBase,
               BoundaryTypes,
               Dumux::BoundaryTypes<GET_PROP_VALUE(TypeTag, NumEq)>);
@@ -115,10 +105,10 @@ SET_INT_PROP(ImplicitBase, ImplicitNumericDifferenceMethod, +1);
 //! do not use hints by default
 SET_BOOL_PROP(ImplicitBase, ImplicitEnableHints, false);
 
-// disable jacobian matrix recycling by default
+//! disable jacobian matrix recycling by default
 SET_BOOL_PROP(ImplicitBase, ImplicitEnableJacobianRecycling, false);
 
-// disable partial reassembling by default
+//! disable partial reassembling by default
 SET_BOOL_PROP(ImplicitBase, ImplicitEnablePartialReassemble, false);
 
 //! Set the type of a global jacobian matrix from the solution types
@@ -132,7 +122,7 @@ public:
     typedef typename Dune::BCRSMatrix<MatrixBlock> type;
 };
 
-// use the stabilized BiCG solver preconditioned by the ILU-0 by default
+//! use the stabilized BiCG solver preconditioned by the ILU-0 by default
 SET_TYPE_PROP(ImplicitBase, LinearSolver, Dumux::BoxBiCGStabILU0Solver<TypeTag> );
 
 // if the deflection of the newton method is large, we do not
diff --git a/dumux/implicit/common/implicitvolumevariables.hh b/dumux/implicit/common/implicitvolumevariables.hh
index 3909f32a62affbc21c941c5111562bf5adba60d6..150b38e7468bc1509b5648193bf09105807e4930 100644
--- a/dumux/implicit/common/implicitvolumevariables.hh
+++ b/dumux/implicit/common/implicitvolumevariables.hh
@@ -22,8 +22,8 @@
  * \brief Base class for the model specific class which provides
  *        access to all volume averaged quantities.
  */
-#ifndef DUMUX_BOX_VOLUME_VARIABLES_HH
-#define DUMUX_BOX_VOLUME_VARIABLES_HH
+#ifndef DUMUX_IMPLICIT_VOLUME_VARIABLES_HH
+#define DUMUX_IMPLICIT_VOLUME_VARIABLES_HH
 
 #include "implicitproperties.hh"
 
@@ -33,13 +33,13 @@ namespace Dumux
 {
 
 /*!
- * \ingroup BoxModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitModel
+ * \ingroup ImplicitVolumeVariables
  * \brief Base class for the model specific class which provides
  *        access to all volume averaged quantities.
  */
 template <class TypeTag>
-class BoxVolumeVariables
+class ImplicitVolumeVariables
 {
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
 
@@ -53,11 +53,11 @@ class BoxVolumeVariables
 
 public:
     // default constructor
-    BoxVolumeVariables()
+    ImplicitVolumeVariables()
     { evalPoint_ = 0; };
 
     // copy constructor
-    BoxVolumeVariables(const BoxVolumeVariables &v)
+    ImplicitVolumeVariables(const ImplicitVolumeVariables &v)
     {
         evalPoint_ = 0;
         priVars_ = v.priVars_;
@@ -67,7 +67,7 @@ public:
     /*!
      * \brief Assignment operator
      */
-    BoxVolumeVariables &operator=(const BoxVolumeVariables &v)
+    ImplicitVolumeVariables &operator=(const ImplicitVolumeVariables &v)
     {
         evalPoint_ = 0;
         priVars_ = v.priVars_;
diff --git a/dumux/implicit/mpnc/mpncvolumevariables.hh b/dumux/implicit/mpnc/mpncvolumevariables.hh
index 53e09ece4d3c1414203980d55a0b1bf8314f5781..78a9f8ad5b4ca4763e118856861eaa474fc7bbf0 100644
--- a/dumux/implicit/mpnc/mpncvolumevariables.hh
+++ b/dumux/implicit/mpnc/mpncvolumevariables.hh
@@ -31,26 +31,26 @@
 #include "mass/mpncvolumevariablesmass.hh"
 #include "mpncvolumevariablesia.hh"
 
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
 #include <dumux/material/constraintsolvers/ncpflash.hh>
 
 namespace Dumux
 {
 /*!
  * \ingroup MPNCModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Contains the quantities which are are constant within a
  *        finite volume in the M-phase, N-component model.
  */
 template <class TypeTag>
 class MPNCVolumeVariables
-    : public BoxVolumeVariables<TypeTag>
+    : public ImplicitVolumeVariables<TypeTag>
     , public MPNCVolumeVariablesIA<TypeTag, GET_PROP_VALUE(TypeTag, EnableKinetic), GET_PROP_VALUE(TypeTag, EnableKineticEnergy)>
     , public MPNCVolumeVariablesMass<TypeTag, GET_PROP_VALUE(TypeTag, EnableKinetic)>
     , public MPNCVolumeVariablesDiffusion<TypeTag, GET_PROP_VALUE(TypeTag, EnableDiffusion) || GET_PROP_VALUE(TypeTag, EnableKinetic)>
     , public MPNCVolumeVariablesEnergy<TypeTag, GET_PROP_VALUE(TypeTag, EnableEnergy), GET_PROP_VALUE(TypeTag, EnableKineticEnergy)>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
@@ -93,7 +93,7 @@ public:
     }
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,
diff --git a/dumux/implicit/richards/richardsvolumevariables.hh b/dumux/implicit/richards/richardsvolumevariables.hh
index abd645f4424f35874824d21a4aa4f0caefccff90..13c3c3c50090b896b601c7e56bf95b1ca3e6a143 100644
--- a/dumux/implicit/richards/richardsvolumevariables.hh
+++ b/dumux/implicit/richards/richardsvolumevariables.hh
@@ -27,23 +27,23 @@
 #include "richardsproperties.hh"
 
 #include <dumux/material/fluidstates/immisciblefluidstate.hh>
-#include <dumux/implicit/box/boxvolumevariables.hh>
+#include <dumux/implicit/common/implicitvolumevariables.hh>
 
 namespace Dumux
 {
 
 /*!
  * \ingroup RichardsModel
- * \ingroup BoxVolumeVariables
+ * \ingroup ImplicitVolumeVariables
  * \brief Volume averaged quantities required by the Richards model.
  *
  * This contains the quantities which are are constant within a finite
  * volume in the Richards model
  */
 template <class TypeTag>
-class RichardsVolumeVariables : public BoxVolumeVariables<TypeTag>
+class RichardsVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef BoxVolumeVariables<TypeTag> ParentType;
+    typedef ImplicitVolumeVariables<TypeTag> ParentType;
 
     typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
@@ -69,7 +69,7 @@ public:
     typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> FluidState;
 
     /*!
-     * \copydoc BoxVolumeVariables::update
+     * \copydoc ImplicitVolumeVariables::update
      */
     void update(const PrimaryVariables &priVars,
                 const Problem &problem,