diff --git a/common/alignment.hh b/common/alignment.hh
index 4fab4cf82b98221425a77032aa4ce2d3456a517e..e6d7dce4df8521860f44be2c94f176a8181b10cf 100644
--- a/common/alignment.hh
+++ b/common/alignment.hh
@@ -18,6 +18,8 @@ namespace Dune
    * requirements at compile time.
    * @author Markus Blatt
    */
+
+  /** \todo Please doc me! */
   template<class T>
   struct AlignmentStruct
   {
@@ -25,6 +27,7 @@ namespace Dune
     T t;
   };
 
+  /** \todo Please doc me! */
   template<class T, std::size_t N>
   struct AlignmentHelper
   {
@@ -37,7 +40,7 @@ namespace Dune
 #define ALIGNMENT_MODULO(a, b)   ((a) % (b) == 0 ? (b) : (a) % (b))
 #define ALIGNMENT_MIN(a, b)      (static_cast<std::size_t>(a) <   \
                                   static_cast<std::size_t>(b) ? (a) : (b))
-
+  /** \todo Please doc me! */
   template <class T, std::size_t N>
   struct AlignmentTester
   {
@@ -54,6 +57,7 @@ namespace Dune
     };
   };
 
+  /** \todo Please doc me! */
   template <class T>
   struct AlignmentTester<T, 0>
   {
diff --git a/common/array.hh b/common/array.hh
index 3f138989d77299d099d0e829e5a84928265f7bde..73870895a1931acda7f71f107bdc854f9e0568f7 100644
--- a/common/array.hh
+++ b/common/array.hh
@@ -175,7 +175,7 @@ namespace Dune
   } ;
 
 
-  // Iterator interface
+  //! Iterator interface
   template<class T>
   inline typename Array<T>::Iterator Array<T>::begin () const
   {
@@ -184,6 +184,7 @@ namespace Dune
     return tmp;
   }
 
+  //! Iterator interface
   template<class T>
   inline typename Array<T>::Iterator Array<T>::end () const
   {
@@ -192,20 +193,27 @@ namespace Dune
     return tmp;          // das funktioniert: Stroustrup p. 92.
   }
 
-  // Destruktor
+  /*! \brief Destructor
+     Deletes contents of array.
+   */
   template <class T>
   inline Array<T>::~Array ()
   {
     if (n>0) delete[] p;
   }
 
-  // Konstruktoren
+  /*! \brief Default constructor
+     Creates an array of size 0.
+   */
   template <class T>
   inline Array<T>::Array ()
   {
     n = 0;
   }
 
+  /*! \brief Constructor with size indicator
+     Creates an empty array of size m.
+   */
   template <class T>
   inline Array<T>::Array (int m)
   {
@@ -224,6 +232,9 @@ namespace Dune
     }
   }
 
+  /*! \brief Resizing of an array
+     Resizing causes the old array to be deleted. All data is lost!
+   */
   template <class T>
   inline void Array<T>::resize (int m)
   {
@@ -250,7 +261,9 @@ namespace Dune
     }
   }
 
-  // Copy-Konstruktor
+  /* \brief Copy-constructor
+     Implements deep copy.
+   */
   template <class T>
   inline Array<T>::Array (const Array<T>& a)
   {
@@ -271,7 +284,8 @@ namespace Dune
     for (int i=0; i<n; i=i+1) p[i]=a.p[i];
   }
 
-  // Zuweisung
+  /* \brief Assignment operator
+   */
   template <class T>
   inline Array<T>& Array<T>::operator= (const Array<T>& a)
   {
@@ -298,7 +312,9 @@ namespace Dune
     return *this;     // Gebe Referenz zurueck damit a=b=c; klappt
   }
 
-  // Zuweisung mit member type
+  /* \brief Assignment operator
+     All elements of the Array get the value a
+   */
   template <class T>
   inline Array<T>& Array<T>::operator= (const T& a)
   {
@@ -306,7 +322,9 @@ namespace Dune
     return *this;     // Gebe Referenz zurueck damit a=b=c; klappt
   }
 
-  // Indizierung
+  /* \brief Access operator
+     Accessing of elements in Array. With bounds check.
+   */
   template <class T>
   inline T& Array<T>::operator[] (int i)
   {
@@ -315,7 +333,9 @@ namespace Dune
     return p[i];
   }
 
-
+  /* \brief Access operator
+     Accessing of elements in Array. With bounds check. Const version
+   */
   template <class T>
   inline const T& Array<T>::operator[] (int i) const
   {
@@ -324,14 +344,16 @@ namespace Dune
     return p[i];
   }
 
-  // Groesse
+  /* \brief Size of Array
+   */
   template <class T>
   inline int Array<T>::size () const
   {
     return n;
   }
 
-  // Ausgabe
+  /* \brief Output operator
+   */
   template <class T>
   std::ostream& operator<< (std::ostream& s, Array<T>& a)
   {
@@ -342,12 +364,14 @@ namespace Dune
     return s;
   }
 
+  //! Constructor
   template<class T>
   inline Array<T>::Iterator::Iterator ()
   {
     p=0;     // nicht initialisierter Iterator
   }
 
+  //! Comparison operator
   template<class T>
   inline bool Array<T>::Iterator::operator!=
     (const typename Array<T>::Iterator& x)
@@ -355,6 +379,7 @@ namespace Dune
     return p != x.p;
   }
 
+  //! Comparison operator
   template<class T>
   inline bool Array<T>::Iterator::operator==
     (const typename Array<T>::Iterator& x)
@@ -362,6 +387,7 @@ namespace Dune
     return p == x.p;
   }
 
+  //! Prefix-increment operator
   template<class T>
   inline typename Array<T>::Iterator Array<T>::Iterator::operator++ () // prefix
   {
@@ -369,6 +395,7 @@ namespace Dune
     return *this;
   }
 
+  //! Postfix-increment operator
   template<class T>
   inline typename Array<T>::Iterator Array<T>::Iterator::operator++ (int) // postfix
   {
@@ -377,12 +404,14 @@ namespace Dune
     return tmp;
   }
 
+  //! Dereferencing
   template<class T>
   inline const T& Array<T>::Iterator::operator* () const
   {
     return *p;
   }
 
+  //! Dereferencing
   template<class T>
   inline const T* Array<T>::Iterator::operator-> () const
   {
diff --git a/common/arraylist.hh b/common/arraylist.hh
index 9d24b3eca107ffebc9522f4521c4e702822a3e95..7bce9df6d716a4692159f2d7e413fa6189bb82ec 100644
--- a/common/arraylist.hh
+++ b/common/arraylist.hh
@@ -16,7 +16,6 @@ namespace Dune
   template<class T, int N, class A>
   class ArrayListIterator;
 
-
   template<class T, int N, class A>
   class ConstArrayListIterator;
 
@@ -37,8 +36,9 @@ namespace Dune
   /**
    * @brief A dynamically growing  random access list.
    *
-   * Internally the data is organized in a list of arrays of fixed size. Whenever the capacity
-   * of the array list is not sufficient a new Dune::FixedArray is allocated. In contrast to
+   * Internally the data is organized in a list of arrays of fixed size.
+   * Whenever the capacity of the array list is not sufficient a new
+   * Dune::FixedArray is allocated. In contrast to
    * std::vector this approach prevents data copying. On the outside
    * we provide the same interface as the stl random access containers.
    */
@@ -269,14 +269,19 @@ namespace Dune
      */
     inline void eraseToHere();
 
+    /** \todo Please doc me! */
     inline int position(){return position_;}
 
+    /** \todo Please doc me! */
     inline void advance(int n);
 
+    /** \todo Please doc me! */
     inline int distanceTo(const ArrayListIterator<MemberType,N,A>& other) const;
 
+    /** \todo Please doc me! */
     inline ArrayListIterator<MemberType,N,A>& operator=(const ArrayListIterator<MemberType,N,A>& other);
 
+    //! Standard constructor
     inline ArrayListIterator() : position_(0)
     {}
 
@@ -343,8 +348,10 @@ namespace Dune
      */
     inline void decrement();
 
+    /** \todo Please doc me! */
     inline void advance(int n);
 
+    /** \todo Please doc me! */
     inline int distanceTo(const ConstArrayListIterator<MemberType,N,A>& other) const;
 
     /**
diff --git a/common/function.hh b/common/function.hh
index cc17c6d0faf62efe1e3693e9a5d0fa4499fd1164..9c7bebb10e7a2289112f003b3e535fba08029b33 100644
--- a/common/function.hh
+++ b/common/function.hh
@@ -22,7 +22,7 @@ namespace Dune {
 
   typedef int deriType;
 
-  /** \brief ???
+  /** \brief Class representing a function
    * \todo Please doc me!
    */
   template< class FunctionSpaceType, class FunctionImp>
diff --git a/common/functionspace.hh b/common/functionspace.hh
index bbe2f20c92df224049ea776d9b69261ae489826f..545b9638ff3c2b67745a96552e05949f33647059 100644
--- a/common/functionspace.hh
+++ b/common/functionspace.hh
@@ -15,7 +15,9 @@ namespace Dune {
      @{
    */
 
-  /** \todo Please doc me! */
+  /** \brief An arbitrary function space
+      Base class for specific function spaces.
+   */
   template< typename DomainFieldType, typename RangeFieldType, int n, int m >
   class FunctionSpace : public DynamicType {
   public:
diff --git a/common/mapping.hh b/common/mapping.hh
index 8994ab099bda09c6055e510bbbd02361266d731d..b283a7840712b3541bc9d61792b42b934fdad63d 100644
--- a/common/mapping.hh
+++ b/common/mapping.hh
@@ -17,7 +17,7 @@ namespace Dune {
      @{
    */
 
-  /** ???
+  /** \brief A mapping
       \todo Please doc me!
 
       Note: Range has to have Vector structure as well.
diff --git a/common/poolallocator.hh b/common/poolallocator.hh
index 5851835f7918fbf370a8c54222e01149aac0bdf9..2b81f960dae6e0602361ead327f0b664f4b11e29 100644
--- a/common/poolallocator.hh
+++ b/common/poolallocator.hh
@@ -75,11 +75,13 @@ namespace Dune
     };
 
   private:
+    /** \todo Please doc me! */
     struct Reference
     {
       Reference *next_;
     };
 
+    /** \todo Please doc me! */
     struct Chunk
     {
       /** @brief The memory we hold. */
diff --git a/common/sllist.hh b/common/sllist.hh
index 34807460cd73a519bfcb7f37227898fffa0d9e69..a2fdd15a555b7b3a0a9d903d25d5d5edcd0ed56a 100644
--- a/common/sllist.hh
+++ b/common/sllist.hh
@@ -130,6 +130,7 @@ namespace Dune
     inline int size() const;
 
   private:
+    /** \todo Please doc me! */
     struct Element
     {
       /**
diff --git a/common/smartpointer.hh b/common/smartpointer.hh
index e36d399236548b006ad839d357a8e6c094ab4525..e31a03ed4d4719f26aecd57a7f8f7ca749d360da 100644
--- a/common/smartpointer.hh
+++ b/common/smartpointer.hh
@@ -5,6 +5,7 @@
 #ifndef __DUNE_SMARTPOINTER_HH__
 #define __DUNE_SMARTPOINTER_HH__
 #include <iostream>
+
 /**
  * @file
  * @brief This file implements the class SmartPointer which is a reference counting
diff --git a/common/test/iteratorfacadetest.hh b/common/test/iteratorfacadetest.hh
index b111c9c504b9f0dd09d805c44474b6abfbb50ad3..3ee3cacf96f17effa6c1957e000759d23e0e93a7 100644
--- a/common/test/iteratorfacadetest.hh
+++ b/common/test/iteratorfacadetest.hh
@@ -6,6 +6,7 @@
 #include <dune/common/genericiterator.hh>
 #include <dune/common/typetraits.hh>
 
+/** \todo Please doc me! */
 template<class T>
 class TestContainer {
 public:
diff --git a/common/test/iteratortest.hh b/common/test/iteratortest.hh
index 46ceeeb523866bc5a850a1795b64e10372170eca..29bce2d19c0d4403351dc750d339a74bc7341580 100644
--- a/common/test/iteratortest.hh
+++ b/common/test/iteratortest.hh
@@ -66,6 +66,7 @@ int testBidirectionalIterator(Iter begin, Iter end, Opt opt)
   return 0;
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testRandomAccessIterator(Iter begin, Iter end, Opt opt){
   int ret=testBidirectionalIterator(begin, end, opt);
@@ -155,21 +156,25 @@ int testRandomAccessIterator(Iter begin, Iter end, Opt opt){
   return ret;
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt, typename iterator_category>
 int testIterator(Iter& begin, Iter& end, Opt& opt, iterator_category cat);
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testIterator(Iter& begin, Iter& end, Opt& opt, std::forward_iterator_tag)
 {
   return testForwardIterator(begin, end, opt);
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testIterator(Iter& begin, Iter& end, Opt& opt, std::bidirectional_iterator_tag)
 {
   return testBidirectionalIterator(begin, end, opt);
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testIterator(Iter& begin, Iter& end, Opt& opt, std::random_access_iterator_tag)
 {
@@ -179,6 +184,7 @@ int testIterator(Iter& begin, Iter& end, Opt& opt, std::random_access_iterator_t
   return ret;
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testConstIterator(Iter& begin, Iter& end, Opt& opt)
 {
@@ -188,16 +194,19 @@ int testConstIterator(Iter& begin, Iter& end, Opt& opt)
   return ret;
 }
 
+/** \todo Please doc me! */
 template<class Container, typename IteratorTag>
 void testSorting(Container& C, IteratorTag tag)
 { }
 
+/** \todo Please doc me! */
 template<class Container>
 void testSorting(Container& c, std::random_access_iterator_tag)
 {
   std::sort(c.begin(), c.end());
 }
 
+/** \todo Please doc me! */
 template<class Container, class Opt>
 int testIterator(Container& c, Opt& opt)
 {
@@ -219,6 +228,7 @@ int testIterator(Container& c, Opt& opt)
          testIterator(begin,end,opt);
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 void testAssignment(Iter begin, Iter end, Opt& opt)
 {
@@ -228,6 +238,7 @@ void testAssignment(Iter begin, Iter end, Opt& opt)
   //std::cout<<" Done."<< std::endl;
 }
 
+/** \todo Please doc me! */
 template<class Iter, class Opt>
 int testIterator(Iter& begin, Iter& end, Opt& opt)
 {
@@ -236,6 +247,7 @@ int testIterator(Iter& begin, Iter& end, Opt& opt)
 }
 
 
+/** \todo Please doc me! */
 template<class T>
 class Printer {
   typename Dune::RemoveConst<T>::Type res;
@@ -247,6 +259,7 @@ public:
   }
 };
 
+/** \todo Please doc me! */
 template<class Container, class Opt>
 int testIterator(const Container& c, Opt& opt)
 {
@@ -255,6 +268,7 @@ int testIterator(const Container& c, Opt& opt)
 }
 
 
+/** \todo Please doc me! */
 template<class Container>
 int testIterator(Container& c)
 {
diff --git a/common/typetraits.hh b/common/typetraits.hh
index 7d6022733003a4399c4326d5720a2b6d7675936a..dad36c92b6c4907b452aa8e176fa6f643e704598 100644
--- a/common/typetraits.hh
+++ b/common/typetraits.hh
@@ -165,6 +165,7 @@ namespace Dune
     };
   };
 
+  /** \todo Please doc me! */
   template<bool b, typename T=void>
   struct EnableIf
   {
@@ -175,6 +176,7 @@ namespace Dune
   struct EnableIf<false,T>
   {};
 
+  /** \todo Please doc me! */
   template<class T1, class T2, class Type>
   struct EnableIfInterOperable
     : public EnableIf<IsInteroperable<T1,T2>::value, Type>
diff --git a/common/vectorspace.hh b/common/vectorspace.hh
index a72e93cbe9339b5ebfeee13298c0d1dad3fa3982..683e183528cdc8c56609eb147b389946df1b0e63 100644
--- a/common/vectorspace.hh
+++ b/common/vectorspace.hh
@@ -18,8 +18,8 @@ namespace Dune {
      @{
    */
 
-  /** \brief ???
-   * \todo Please doc me!
+  /** \brief Vector class
+   * This is the base class for all methods and operators.
    */
   template <typename Field>
   class Vector
@@ -30,17 +30,18 @@ namespace Dune {
     //virtual Vector<Field> operator * (const Field &) const = 0;
     //virtual Vector<Field> operator / (const Field &) const = 0;
 
-    //! \todo Oli changed all method to, I changed it back, because
-    //! otherwise the code will not compile and I fixed this hack later.
+    /** \brief Assignment operator
+        \note Only returns itself...
+     */
     virtual Vector<Field>& operator  = (const Vector<Field> &) { return *this;};
 
-    //! !
+    //! Addition
     virtual Vector<Field>& operator += (const Vector<Field> &) = 0;
-    //! !
+    //! Subtraction
     virtual Vector<Field>& operator -= (const Vector<Field> &) = 0;
-    //! !
+    //! Multiplication
     virtual Vector<Field>& operator *= (const Field &) = 0;
-    //! !
+    //! Division
     virtual Vector<Field>& operator /= (const Field &) = 0;
   };
 
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 10e22277576098ba42a1cabe8845aa004449c8e1..a09bb1f92f5cf8a32215adf3e4b578a327e7abee 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -204,7 +204,7 @@ EXTRACT_LOCAL_CLASSES  = YES
 # various overviews, but no documentation section is generated. 
 # This option has no effect if EXTRACT_ALL is enabled.
 
-HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_MEMBERS     = NO
 
 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
 # undocumented classes that are normally visible in the class hierarchy. 
diff --git a/fem/common/basefunctions.hh b/fem/common/basefunctions.hh
index 00a5726bb40ce8ea31eeaae59a56b09697f777bc..da104e0cd510dfe250a0a8e6f38845be74488386 100644
--- a/fem/common/basefunctions.hh
+++ b/fem/common/basefunctions.hh
@@ -35,13 +35,11 @@ namespace Dune {
   };
 
   //*************************************************************************
-  //
   //! BaseFunctionInterface is the interface to a base function.
   //! A base function can be evaluated on a point from the Domain and the
   //! outcome is a point from Range. The Types of Domain and Range are stored
   //! by typedefs in FunctionSpaceType which is the template parameter of
   //! BaseFunctionInterface.
-  //
   //*************************************************************************
   template<class FunctionSpaceType>
   class BaseFunctionInterface
@@ -139,12 +137,15 @@ namespace Dune {
 
     /*** Begin Interface ***/
 
+    //! \todo Please doc me!
     BaseFunctionSetInterface ( FunctionSpaceType & f ) : funcSpace_ ( f ) {};
 
+    //! \todo Please doc me!
     int getNumberOfBaseFunctions () const {
       return asImp().getNumberOfBaseFunctions();
     };
 
+    //! \todo Please doc me!
     template <int diffOrd>
     void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable, const
                     Domain & x, Range & phi ) const {
@@ -152,12 +153,14 @@ namespace Dune {
       asImp().evaluate( baseFunct, diffVariable, x, phi );
     }
 
+    //! \todo Please doc me!
     template <int diffOrd, class QuadratureType >
     void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable, QuadratureType & quad, int quadPoint, Range & phi ) const {
       asImp().evaluate( baseFunct, diffVariable, quad, quadPoint, phi );
     }
   protected:
 
+    //! \todo Please doc me!
     const BaseFunctionInterface<FunctionSpaceType> &getBaseFunction( int baseFunct ) const {
       std::cout << "Interface getBaseFunction \n";
       return asImp().getBaseFunction( baseFunct );
diff --git a/fem/common/fastbase.hh b/fem/common/fastbase.hh
index 3a00279d23eca66226398e163f0ac36d204ae187..f46fc23dc75a1dc8bf4af4c29e26de917fced108 100644
--- a/fem/common/fastbase.hh
+++ b/fem/common/fastbase.hh
@@ -99,6 +99,7 @@ namespace Dune {
       baseFunctionList_[baseFunc] = func;
     };
 
+    //! \todo Please doc me!
     void setNumOfDiffFct ( int num )
     {
       numOfDiffFct_ = num;
diff --git a/fem/common/localfunction.hh b/fem/common/localfunction.hh
index 73a4cdcd7486213568da914721d24555b320f608..fa92743adcd339c8c616ad9a588917979a47e322 100644
--- a/fem/common/localfunction.hh
+++ b/fem/common/localfunction.hh
@@ -137,6 +137,7 @@ namespace Dune {
       return asImp().operator != (I);
     }
 
+    //! \todo Please doc me!
     int index () const
     {
       return asImp().index();
diff --git a/fem/common/localoperator.hh b/fem/common/localoperator.hh
index 1e1738531bbe2e7afcf29b8d95c9892bbc5d206a..dd19dd66fa81e30fad942a126ed6967cc5a8a679 100644
--- a/fem/common/localoperator.hh
+++ b/fem/common/localoperator.hh
@@ -30,7 +30,7 @@ namespace Dune
   class LocalOperatorInterface
   {
   public:
-    // remember the parameter types
+    //! remember the parameter types
     typedef FstPType FirstParamType;
     typedef SecPType SecondParamType;
     typedef SType ScalarType;
@@ -45,59 +45,61 @@ namespace Dune
       asImp().prepareGlobal(pa,pb);
     }
 
-    // prepare for grid walktrough
+    //! prepare for grid walktrough
     void prepareGlobal ()
     {
       asImp().prepareGlobal();
     }
 
-    // finalize the walktrough
+    //! finalize the walktrough
     void finalizeGlobal()
     {
       asImp().finalizeGlobal();
     }
 
-    // one entity
+    //! one entity
     template<class EntityType>
     void prepareLocal (EntityType & en)
     {
       asImp().prepareLocal(en);
     }
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en)
     {
       asImp().finalizeLocal(en);
     }
 
-    // two entities
+    //! two entities
     template<class EntityType>
     void prepareLocal (EntityType & en1, EntityType &en2)
     {
       asImp().prepareLocal(en1,en2);
     }
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en1, EntityType &en2)
     {
       asImp().finalizeLocal(en1,en2);
     }
 
-    // things to do on one entity
+    //! things to do on one entity
     template<class EntityType>
     void applyLocal(EntityType & en)
     {
       asImp().applyLocal(en);
     }
 
-    // things to do on two entity
+    //! things to do on two entity
     template<class EntityType>
     void applyLocal(EntityType & en1, EntityType &en2)
     {
       asImp().applyLocal(en1,en2);
     }
   private:
-    // Barton Nackman
+    //! Barton Nackman
     LocalOperatorImp & asImp()
     {
       return static_cast<LocalOperatorImp &> (*this);
@@ -105,10 +107,13 @@ namespace Dune
   };
 
   //**************************************************************************
-  //
   //  Default implemenations for LocalOperators
-  //
   //**************************************************************************
+  /** \brief Default implementation of a local operator
+   *  A local operator works on entities only and is used by a DiscreteOperator
+   *  during a mesh traversal. This class implements the standard behaviour for
+   *  prepareLocal(), finalizeLocal() and possibly other methods.
+   */
   template <class FstPType, class SecPType, class SType ,
       class LocalOperatorImp>
   class LocalOperatorDefault
@@ -116,12 +121,12 @@ namespace Dune
           SType,LocalOperatorImp>
   {
   public:
-    // remember the parameter types
+    //! remember the parameter types
     typedef FstPType FirstParamType;
     typedef SecPType SecondParamType;
     typedef SType ScalarType;
 
-    // no default implementation at the moement
+    //! no default implementation at the moement
     LocalOperatorDefault () : scalar_ (1.0) {}
 
     //! scale operator , for inheritance
@@ -144,6 +149,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en) {};
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en) {};
 
@@ -151,6 +157,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en1, EntityType &en2){};
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en1, EntityType &en2){};
     //**************************************************************
@@ -188,6 +195,7 @@ namespace Dune
         std::cout << "Create CombinedLocalOperator " << this << "\n";
     }
 
+    //! Destructor
     ~CombinedLocalOperator ()
     {
       if(printMSG_)
@@ -220,6 +228,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en);
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en);
 
@@ -227,6 +236,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en1, EntityType &en2);
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en1, EntityType &en2);
 
@@ -395,6 +405,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en);
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en);
 
@@ -402,6 +413,7 @@ namespace Dune
     template<class EntityType>
     void prepareLocal (EntityType & en1, EntityType &en2);
 
+    //! \todo Please doc me!
     template<class EntityType>
     void finalizeLocal(EntityType & en1, EntityType &en2);
 
diff --git a/fem/dfadapt.hh b/fem/dfadapt.hh
index 8edc4fc317d508c4c94cb18e96a67e6167ef0ee3..03c79b4ca8a2baff487bc45ea13184a36ee6c575 100644
--- a/fem/dfadapt.hh
+++ b/fem/dfadapt.hh
@@ -105,9 +105,11 @@ namespace Dune {
     //! set all dof to value x
     void set( RangeFieldType x );
 
+    //! \todo Please do me!
     void addScaled (const DFAdapt <DiscreteFunctionSpaceType> & g,
                     const RangeFieldType &scalar);
 
+    //! \todo Please do me!
     template <class EntityType>
     void addScaledLocal (EntityType &en,
                          const DFAdapt <DiscreteFunctionSpaceType> & g,
@@ -123,6 +125,7 @@ namespace Dune {
     void substractLocal (EntityType &it,
                          const DFAdapt <DiscreteFunctionSpaceType> & g);
 
+    //! \todo Please do me!
     template <class EntityType>
     void setLocal (EntityType &it, const RangeFieldType &scalar);
 
@@ -266,6 +269,8 @@ namespace Dune {
   //***********************************************************************
   //
   //  --DofIteratorAdapt
+  //! \todo Please doc me!
+  //! I guess this is an iterator over an adaptive space.
   //
   //***********************************************************************
   template < class DofImp, class DofArrayType >
@@ -276,9 +281,11 @@ namespace Dune {
   public:
     typedef DofImp DofType;
 
+    //! Constructor
     DofIteratorAdapt ( DofArrayType & dofArray , int count )
       :  dofArray_ ( dofArray ) , constArray_ (dofArray) , count_ ( count ) {};
 
+    //! Constructor
     DofIteratorAdapt ( const DofArrayType & dofArray , int count )
       :  dofArray_ ( const_cast <DofArrayType &> (dofArray) ) ,
         constArray_ ( dofArray ) ,
diff --git a/fem/dgspace.hh b/fem/dgspace.hh
index 627510ebaf082851debc5d862073a701b96a8525..30d1725db76585ca5ad6fc383f5f718b49a178fb 100644
--- a/fem/dgspace.hh
+++ b/fem/dgspace.hh
@@ -16,7 +16,7 @@ namespace Dune {
 
   //**********************************************************************
   //
-  //  DiscreteFunctionSpace for discontinous functions
+  //!  DiscreteFunctionSpace for discontinous functions
   //
   //**********************************************************************
   template< class FunctionSpaceType, class GridType, int polOrd , class
diff --git a/fem/dgspace/monomialbase.hh b/fem/dgspace/monomialbase.hh
index 231ec0a9aaa1147659eb162211d1552d3292408b..155b15d94a386f54786a22a334a4c22782250bb1 100644
--- a/fem/dgspace/monomialbase.hh
+++ b/fem/dgspace/monomialbase.hh
@@ -23,6 +23,8 @@ namespace Dune {
   //  --MonomialBaseFunctionSet
   //
   //*************************************************************************
+
+  //! \todo Please doc me!
   template<class FunctionSpaceType>
   class MonomialBaseFunctionSet
     : public BaseFunctionSetDefault
@@ -60,10 +62,12 @@ namespace Dune {
     void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable,
                     QuadratureType & quad, int quadPoint, Range & phi ) const;
 
+    //! \todo Please doc me!
     void print (std::ostream& s, int baseFunct) const {
       assert(baseFunct < numOfBaseFct_);
       print(s, Phi_[baseFunct]);
     };
+    //! \todo Please doc me!
     void print (std::ostream& s) const {
       s << "[";
       for (int i = 0; i < numOfBaseFct_ - 1; i++) {
@@ -88,21 +92,29 @@ namespace Dune {
       return x*power(x, p-1);
     }
 
-    inline
-    void real_evaluate ( int baseFunct, const FieldVector<deriType, 0> &diffVariable,
-                         const Domain & x,  Range & phi ) const;
-    inline
-    void real_evaluate ( int baseFunct, const FieldVector<deriType, 1> &diffVariable,
-                         const Domain & x,  Range & phi ) const;
-    inline
-    void real_evaluate ( int baseFunct, const FieldVector<deriType, 2> &diffVariable,
-                         const Domain & x,  Range & phi ) const;
-
+    //! \todo Please doc me!
+    inline void real_evaluate ( int baseFunct,
+                                const FieldVector<deriType, 0> &diffVariable,
+                                const Domain & x,
+                                Range & phi ) const;
+
+    //! \todo Please doc me!
+    inline void real_evaluate ( int baseFunct,
+                                const FieldVector<deriType, 1> &diffVariable,
+                                const Domain & x,
+                                Range & phi ) const;
+    //! \todo Please doc me!
+    inline void real_evaluate ( int baseFunct,
+                                const FieldVector<deriType, 2> &diffVariable,
+                                const Domain & x,
+                                Range & phi ) const;
+
+    //! \todo Please doc me!
     void print (std::ostream& s, const FieldVector<int, 2> & pol) const;
 
   }; // end class MonomialBaseFunctionSet
 
-  // overloading the out stream for printing of monomial bases
+  //! overloading the out stream for printing of monomial bases
   template< class T >
   inline std::ostream&
   operator<< (std::ostream& s, MonomialBaseFunctionSet<T> & m)
diff --git a/fem/discfuncarray.hh b/fem/discfuncarray.hh
index b274826fe08f1283dc2a42ed6d4dc9a6dfc4b4ac..52c1e12989482cc06c97756e66a7aa7f58066edb 100644
--- a/fem/discfuncarray.hh
+++ b/fem/discfuncarray.hh
@@ -45,9 +45,9 @@ namespace Dune {
     enum { myId_ = 0};
   public:
 
-    //! ???
+    //! Type of the range field
     typedef typename DiscreteFunctionSpaceType::RangeField RangeFieldType;
-    //! ???
+    //! Type of the grid
     typedef typename DiscreteFunctionSpaceType::GridType GridType;
 
 
@@ -62,7 +62,7 @@ namespace Dune {
     typedef DofIteratorArray < typename DiscreteFunctionSpaceType::RangeField > DofIteratorType;
     typedef ConstDofIteratorDefault<DofIteratorType> ConstDofIteratorType;
 
-    //! ???
+    //! The associated discrete function space
     typedef DiscreteFunctionSpaceType FunctionSpaceType;
 
     //! Constructor makes Discrete Function
@@ -99,14 +99,14 @@ namespace Dune {
     void localFunction ( EntityType &en,
                          LocalFunctionArray<DiscreteFunctionSpaceType> & lf);
 
-    // we use the default implementation
+    //! we use the default implementation
     DofIteratorType dbegin ();
 
     //! points behind the last dof of type cc
     DofIteratorType dend   ();
 
-    // the const versions
-    // we use the default implementation
+    //! the const versions
+    //! we use the default implementation
     ConstDofIteratorType dbegin () const;
 
     //! points behind the last dof of type cc
@@ -290,7 +290,9 @@ namespace Dune {
   //  --DofIteratorArray
   //
   //***********************************************************************
-  /** \brief ??? */
+  /** \brief Iterator over an array of dofs
+      \todo Please doc me!
+   */
   template < class DofImp >
   class DofIteratorArray : public
                            DofIteratorDefault < DofImp , DofIteratorArray < DofImp > >
diff --git a/fem/discretefeopimp.hh b/fem/discretefeopimp.hh
index 46ec67510ba8b27f6cb98b722fa0122e4056c135..e97be16f676f03a9c88371e7e3f066100e2e0343 100644
--- a/fem/discretefeopimp.hh
+++ b/fem/discretefeopimp.hh
@@ -26,6 +26,9 @@ namespace Dune {
      @{
    */
 
+  /** \brief Base class for discrete finite element operators
+   * Base class for local operators in a finite elment discretization
+   */
   template <class DiscreteFunctionType, class LocalOperatorImp >
   class DiscreteFEOp
     : public DiscreteOperatorDefault <DiscreteFunctionType, DiscreteFunctionType >
@@ -118,6 +121,7 @@ namespace Dune {
       applyNow(Arg,Dest);
     }
 
+    //! \todo Please doc me!
     template <class ArgParamType , class DestParamType>
     void applyNow ( const ArgParamType &arg, DestParamType &dest ) const
     {
@@ -195,6 +199,7 @@ namespace Dune {
       localOp_.finalizeGlobal();
     }
 
+    //! \todo Please doc me!
     template <class GridIteratorType>
     void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit,
                        const DomainType &Arg, RangeType &Dest ) const
@@ -211,6 +216,7 @@ namespace Dune {
       }
     }
 
+    //! \todo Please doc me!
     template <class GridIteratorType>
     void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit ) const
     {
diff --git a/fem/discreteoperatorimp.hh b/fem/discreteoperatorimp.hh
index ff896afff6d66f885ac55542fbfbfe09950c0fa6..4fbc1a9078bc9b6d325235a9e0b682282531fac2 100644
--- a/fem/discreteoperatorimp.hh
+++ b/fem/discreteoperatorimp.hh
@@ -95,6 +95,7 @@ namespace Dune {
       applyNow(Arg,Dest);
     }
 
+    //! \todo Please doc me!
     template <class ArgParamType , class DestParamType>
     void applyNow ( const ArgParamType &arg, DestParamType &dest ) const
     {
@@ -172,6 +173,7 @@ namespace Dune {
       localOp_.finalizeGlobal();
     }
 
+    //! \todo Please doc me!
     template <class GridIteratorType>
     void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit,
                        const DFDomainType &Arg, DFRangeType &Dest ) const
@@ -188,6 +190,7 @@ namespace Dune {
       }
     }
 
+    //! \todo Please doc me!
     template <class GridIteratorType>
     void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit ) const
     {
diff --git a/fem/dofmanager.hh b/fem/dofmanager.hh
index 70144cdabd3f1839ce7bde5fdec03a2bb70bd209..770b4ff71acfd9d4f81385c5ed0e79aebe56b897 100644
--- a/fem/dofmanager.hh
+++ b/fem/dofmanager.hh
@@ -38,22 +38,22 @@ namespace Dune {
   class DofArrayMemory
   {
   private:
-    // pointer to memory
+    //! pointer to memory
     MemPointerType * vec_;
 
-    // size of array
+    //! size of array
     int size_;
 
-    // sizeof one array entry
+    //! sizeof one array entry
     size_t objSize_;
 
-    // name of this array
+    //! name of this array
     const char * name_;
 
-    // only this class is allowed to generate instances of this class
+    //! only this class is allowed to generate instances of this class
     friend class MemObject;
 
-    // Constructor can only be called from MemObject
+    //! Constructor can only be called from MemObject
     DofArrayMemory(const char * name, size_t objSize) : vec_ (0), size_(0)
                                                         , objSize_(objSize) , name_(name) {}
 
@@ -85,6 +85,7 @@ namespace Dune {
     template <class T>
     T* vector () { return static_cast<T *> ((void *)vec_); }
 
+    //! return vector for cg scheme, const version
     template <class T>
     const T* vector () const { return static_cast<T *> ((void *)vec_); }
 
@@ -196,7 +197,10 @@ namespace Dune {
       return *this;
     }
 
+    //! \todo Please doc me!
     T* vector() { return array_.vector<T> (); }
+
+    //! \todo Please doc me!
     const T* vector() const { return array_.vector<T> (); }
 
     //! read and write xdr
@@ -206,6 +210,7 @@ namespace Dune {
     }
   };
 
+  //! \todo Please doc me!
   class DefaultGHMM
   {
   public:
@@ -261,7 +266,7 @@ namespace Dune {
     DofArrayMemory array_;
 
   public:
-    // Constructor of MemObject, only to call from DofManager
+    //! Constructor of MemObject, only to call from DofManager
     template <class GridType, class MapperType>
     MemObject ( GridType & grid, MapperType & mapper,
                 const char * name , DefaultGHMM & ghmm , size_t objSize )
@@ -281,7 +286,7 @@ namespace Dune {
       if(myMem_) ghmm_.Free(myMem_);
     }
 
-    // defines the corresponding array type
+    //! defines the corresponding array type
     typedef DofArrayMemory DefaultArrayType;
 
     //! returns name of this vector
@@ -437,6 +442,7 @@ namespace Dune {
       indexSet_.createFatherIndex(en);
     }
 
+    //! \todo Please doc me!
     void resizeTmp ()
     {
       ListIteratorType it    = memList_.begin();
@@ -464,6 +470,7 @@ namespace Dune {
       }
     }
 
+    //! \todo Please doc me!
     void resize()
     {
       indexSet_.resize();
@@ -500,6 +507,7 @@ namespace Dune {
       }
     }
 
+    //! \todo Please doc me!
     void dofCompress()
     {
       // keeps the old indices for a while
@@ -556,6 +564,7 @@ namespace Dune {
     bool read_xdr( const char * filename, int timestep);
   };
 
+  //! \todo Please doc me!
   template <class GridType,class IndexSetType>
   inline bool DofManager<GridType,IndexSetType>::
   write(const FileFormatType ftype, const char *filename, int timestep)
@@ -563,6 +572,7 @@ namespace Dune {
     assert(ftype == xdr);
     return write_xdr(filename,timestep);
   }
+  //! \todo Please doc me!
   template <class GridType,class IndexSetType>
   inline bool DofManager<GridType,IndexSetType>::
   read(const char * filename , int timestep)
@@ -570,6 +580,7 @@ namespace Dune {
     return read_xdr(filename,timestep);
   }
 
+  //! \todo Please doc me!
   template <class GridType,class IndexSetType>
   inline bool DofManager<GridType,IndexSetType>::
   write_xdr(const char * filename , int timestep)
@@ -578,6 +589,7 @@ namespace Dune {
     return indexSet_.write_xdr(filename,timestep);
   }
 
+  //! \todo Please doc me!
   template <class GridType,class IndexSetType>
   inline bool DofManager<GridType,IndexSetType>::
   read_xdr(const char * filename , int timestep)
diff --git a/fem/feop.hh b/fem/feop.hh
index 665ee588e0c3b3ad3e33c3511f1e9d251a028c06..907dafdb602f155f75ecbd9786018280c9844102 100644
--- a/fem/feop.hh
+++ b/fem/feop.hh
@@ -13,9 +13,10 @@ namespace Dune {
   /** @defgroup FEOpInterface FEOpInterface
       @ingroup DiscreteOperator
 
-      FEopInterface is the interface for the definition of a finite element operator.
+
      @{
    */
+  //! \brief FEopInterface is the interface for the definition of a finite element operator.
   template <class DiscFunctionType, class FEOpImp>
   class FEOpInterface
     : public Operator<typename DiscFunctionType::DomainFieldType,
@@ -39,7 +40,7 @@ namespace Dune {
 
   /** @} end documentation group */
 
-
+  //! \todo Please doc me!
   template <class DiscFunctionType, class FEOpImp>
   class FEOp : public FEOpInterface<DiscFunctionType,FEOpImp> ,
                public LocalOperatorDefault <DiscFunctionType,DiscFunctionType, typename
@@ -50,18 +51,19 @@ namespace Dune {
   public:
     enum OpMode { ON_THE_FLY, ASSEMBLED };
 
+    //! \todo Please doc me!
     FEOp( const typename DiscFunctionType::FunctionSpaceType &fuspace,
           OpMode opMode = ASSEMBLED, bool leaf = true ) :
       functionSpace_( fuspace ),  matrix_ (0), matrix_assembled_( false ),
       arg_ ( NULL ), dest_ (NULL) , opMode_(opMode), leaf_(leaf)  {};
 
+    //! \todo Please doc me!
     ~FEOp( ) {
       if ( matrix_ ) delete matrix_;
     };
 
   public:
     //! methods for global application of the operator
-
     void initialize(){
       //std::cout << "Matrix reinitialized!" << std::endl ;
 
@@ -70,9 +72,11 @@ namespace Dune {
       matrix_ = 0;
     };
 
+    //! \todo Please doc me!
     virtual void initLevel ( int level ) const
     {};
 
+    //! \todo Please doc me!
     void apply( const DiscFunctionType &arg, DiscFunctionType &dest) const
     {
       assert( opMode_ == ASSEMBLED );
@@ -88,14 +92,12 @@ namespace Dune {
 
 
   public:
-    //! methods for local application of the operator
-
     //! isLeaf returns true if Leafiterator should be used, else false is returned
     bool isLeaf (){
       return (leaf_);
     };
 
-    // store argument and destination
+    //! store argument and destination
     void prepareGlobal(const DiscFunctionType &Arg, DiscFunctionType & Dest )
     {
       arg_  = &Arg.argument();
@@ -104,13 +106,13 @@ namespace Dune {
       dest.clear();
     };
 
-    // set argument and dest to NULL
+    //! set argument and dest to NULL
     void finalizeGlobal()
     {
       arg_  = NULL; dest_ = NULL;
     };
 
-    // makes local multiply on the fly
+    //! makes local multiply on the fly
     template <class EntityType>
     void applyLocal ( EntityType &en ) const
     {
@@ -180,7 +182,7 @@ namespace Dune {
     }; // end applyLocal
 
 
-    // corrects the mapping in order to take into account dirichlet boundary conditions
+    //! corrects the mapping in order to take into account dirichlet boundary conditions
     template <class EntityType>
     void finalizeLocal ( EntityType &en ) const
     {
@@ -267,19 +269,20 @@ namespace Dune {
     }; // end finalizeLocal
 
   protected:
-    // the corresponding function_space
+    //! the corresponding function_space
     const typename DiscFunctionType::FunctionSpaceType & functionSpace_;
 
-    // the representing matrix
+    //! the representing matrix
     mutable MatrixType *matrix_ ;
 
-    // is matrix assembled
+    //! is matrix assembled
     mutable bool matrix_assembled_;
 
-    // storage of argument and destination
+    //! storage of argument and destination
     const DiscFunctionType * arg_;
     DiscFunctionType * dest_;
 
+    //! \todo Please doc me!
     MatrixType* newEmptyMatrix( ) const
     {
       typedef typename DiscFunctionType::FunctionSpaceType::GridType GridType;
@@ -289,6 +292,7 @@ namespace Dune {
                              15 * (dim-1) , 0.0 );
     };
 
+    //! \todo Please doc me!
     void assemble ( ) const
     {
       typedef typename DiscFunctionType::FunctionSpace FunctionSpaceType;
@@ -336,7 +340,7 @@ namespace Dune {
       matrix_assembled_ = true;
     };
 
-
+    //! \todo Please doc me!
     template <class GridIteratorType, class MatrixImp>
     void assembleOnGrid ( GridIteratorType &it, GridIteratorType &endit, MatrixImp &mat) const
     {
@@ -363,7 +367,7 @@ namespace Dune {
       }
     }
 
-
+    //! \todo Please doc me!
     template <class GridIteratorType>
     void bndCorrectOnGrid ( GridIteratorType &it, GridIteratorType &endit) const
     {
diff --git a/fem/feoperator.hh b/fem/feoperator.hh
index 38a71c416a0052372c2784faa496f44329d61f1c..0715f9722deb048eeda9f0273487e8b8ecb348af 100644
--- a/fem/feoperator.hh
+++ b/fem/feoperator.hh
@@ -10,8 +10,7 @@ namespace Dune {
 
   static const int edge[4][2] = { {0,2}, {1,3} , {0,1} , {2,3}};
 
-  /** \brief ???
-   * \todo Please doc me!
+  /** \brief Base class for local Finite Element operators
    */
   template <class DiscFunctionType, class MatrixType, class FEOpImp>
   class FiniteElementOperatorInterface
@@ -60,7 +59,7 @@ namespace Dune {
     const FEOpImp &asImp( ) const { return static_cast<const FEOpImp&>( *this ); }
   };
 
-  /** \brief ???
+  /** \brief Base class for local Finite Element operators
    * \todo Please doc me!
    */
   template <class DiscFunctionType, class MatrixType, class FEOpImp>
@@ -196,7 +195,7 @@ namespace Dune {
       matrix_assembled_ = true;
     }
 
-    //!
+    //! \todo Please doc me!
     void multiplyOnTheFly( const DiscFunctionType &arg, DiscFunctionType &dest ) const
     {
       typedef typename DiscFunctionType::FunctionSpace FunctionSpaceType;
diff --git a/fem/inverseoperators.hh b/fem/inverseoperators.hh
index a3a09dcee652cf4a50511bb2bbdf2cd12798dcf8..d842b2f72258e701afe01b36b594e74a92d477b2 100644
--- a/fem/inverseoperators.hh
+++ b/fem/inverseoperators.hh
@@ -8,6 +8,8 @@
 
 namespace Dune {
 
+  /** \brief Inversion operator using CG algorithm
+   */
   template <class DiscreteFunctionType>
   class CGInverseOperator : public Operator<
                                 typename DiscreteFunctionType::DomainFieldType,
@@ -20,12 +22,16 @@ namespace Dune {
         DiscreteFunctionType,DiscreteFunctionType> MappingType;
 
   public:
-
-    CGInverseOperator( const MappingType & op ,
-                       double redEps , double absLimit , int maxIter , int verbose )
+    /** \todo Please doc me! */
+    CGInverseOperator( const MappingType & op,
+                       double redEps,
+                       double absLimit,
+                       int maxIter,
+                       int verbose )
       : op_(op), _redEps ( redEps ), epsilon_ ( absLimit*absLimit ) ,
         maxIter_ (maxIter ) , _verbose ( verbose ) {}
 
+    /** \todo Please doc me! */
     void apply( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const
     {
       typedef typename DiscreteFunctionType::FunctionSpace FunctionSpaceType;
@@ -98,7 +104,7 @@ namespace Dune {
     int _verbose ;
   };
 
-
+  /** \todo Please doc me! */
   template <class DiscreteFunctionType, class OperatorType>
   class CGInverseOp : public Operator<
                           typename DiscreteFunctionType::DomainFieldType,
@@ -106,13 +112,18 @@ namespace Dune {
                           DiscreteFunctionType,DiscreteFunctionType>
   {
   public:
-
-    CGInverseOp( OperatorType & op , double redEps , double absLimit , int maxIter , int verbose ) : op_(op),
-                                                                                                     _redEps ( redEps ), epsilon_ ( absLimit*absLimit ) ,
-                                                                                                     maxIter_ (maxIter ) , _verbose ( verbose ) ,
-                                                                                                     r_(0), p_(0), h_(0)
-    {}
-
+    /** \todo Please doc me! */
+    CGInverseOp( OperatorType & op , double redEps , double absLimit , int maxIter , int verbose ) :
+      op_(op),
+      _redEps ( redEps ),
+      epsilon_ ( absLimit*absLimit ) ,
+      maxIter_ (maxIter ) ,
+      _verbose ( verbose ) ,
+      r_(0),
+      p_(0),
+      h_(0) {}
+
+    /** \todo Please doc me! */
     ~CGInverseOp()
     {
       if(p_) delete p_;
@@ -120,6 +131,7 @@ namespace Dune {
       if(h_) delete h_;
     }
 
+    /** \todo Please doc me! */
     void apply( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const
     {
       typedef typename DiscreteFunctionType::FunctionSpace FunctionSpaceType;
@@ -182,6 +194,7 @@ namespace Dune {
       op_.finalizeGlobal();
     }
 
+    /** \todo Please doc me! */
     void operator () ( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const
     {
       this->apply(arg,dest);
diff --git a/fem/lagrangebase.hh b/fem/lagrangebase.hh
index 1f12d56400f3ea620cd65a8048fde3af0779876c..973641f26cc34a9f1ea8f9cdc6a8eca29225641e 100644
--- a/fem/lagrangebase.hh
+++ b/fem/lagrangebase.hh
@@ -162,7 +162,7 @@ namespace Dune {
 
   //*******************************************************************
   //
-  // DGSpace using Lagrange basis functions, used for visualisation
+  //! DGSpace using Lagrange basis functions, used for visualisation
   //
   //*******************************************************************
   template< class FunctionSpaceType, class GridType,int polOrd, class
@@ -221,6 +221,7 @@ namespace Dune {
       }
     };
 
+    //! Destructor
     ~LagrangeDGSpace () {
       if (mapper_) delete mapper_;
     }
@@ -522,7 +523,7 @@ namespace Dune {
 
   //*******************************************************************
   //
-  //  EdgeBaseFunctionSet
+  //!  EdgeBaseFunctionSet
   //
   //*******************************************************************
   template<class FunctionSpaceType, ElementType ElType, int polOrd >
@@ -566,6 +567,7 @@ namespace Dune {
     //! return number of base function for this base function set
     int getNumberOfBaseFunctions() const { return numOfBaseFct; };
 
+    //! \todo Please doc me!
     int getNumberOfDiffrentBaseFunctions () const
     {
       return (int) (numOfBaseFct);
@@ -575,7 +577,7 @@ namespace Dune {
     FieldVector<EdgeBaseFunctionType*, numOfBaseFct> baseFuncList_;
   };
 
-
+  //! \todo Please doc me!
   template <class GridType, int polOrd>
   class RTMapper
     : public DofMapperDefault < RTMapper <GridType,polOrd> >
@@ -583,8 +585,11 @@ namespace Dune {
     int numberOfDofs_;
     int level_;
   public:
+
+    //! \todo Please doc me!
     RTMapper ( int numDof , int level ) : numberOfDofs_ (numDof), level_(level) {};
 
+    //! \todo Please doc me!
     int size (const GridType &grid ) const
     {
       // return number of entities  * number of local faces
@@ -600,6 +605,7 @@ namespace Dune {
 
   }; // end class RTMapper
 
+  //! \todo Please doc me!
   template< class FunctionSpaceType, class GridType, int polOrd  >
   class RaviartThomasSpace
     : public DiscreteFunctionSpaceInterface <  FunctionSpaceType , GridType,
@@ -781,7 +787,7 @@ namespace Dune {
 
   //********************************************************************
   //
-  //  EdgeSpace
+  //!  EdgeSpace
   //
   //********************************************************************
   template< class FunctionSpaceType, class GridType, int polOrd  >
@@ -816,6 +822,7 @@ namespace Dune {
 
     int level_;
   public:
+    //! \todo Please doc me!
     EdgeSpace ( GridType & g , int level ) :
       DiscreteFunctionSpaceType (g,id) , level_ (level)
     {
diff --git a/fem/lagrangebase/lagrangebasefunctions.hh b/fem/lagrangebase/lagrangebasefunctions.hh
index 42c64263d596c07f354170e1c0095018eede5271..c27003fb41780a13732e8d655266728946b04b21 100644
--- a/fem/lagrangebase/lagrangebasefunctions.hh
+++ b/fem/lagrangebase/lagrangebasefunctions.hh
@@ -142,6 +142,7 @@ namespace Dune {
     int baseNum_;
 
   public:
+    //! \todo Please doc me!
     LagrangeBaseFunction ( FunctionSpaceType & f , int baseNum  )
       : BaseFunctionInterface<FunctionSpaceType> (f)
     {
@@ -171,6 +172,7 @@ namespace Dune {
         phi += factor[i] * x[i-1];
     }
 
+    //! \todo Please doc me!
     virtual void evaluate ( const FieldVector<deriType, 1> &diffVariable,
                             const Domain & x, Range & phi) const
     {
@@ -180,6 +182,7 @@ namespace Dune {
       phi = factor[num+1];
     }
 
+    //! \todo Please doc me!
     virtual void evaluate ( const DiffVariable<2>::Type &diffVariable,
                             const Domain & x, Range & phi) const
     {
@@ -192,8 +195,8 @@ namespace Dune {
   //
   //! LagrangeBaseFunction for tetrahedrons and polynom order = 1
   //!
-  //  see reference element Dune tetrahedra
-  //
+  //!  see reference element Dune tetrahedra
+  //!
   //*****************************************************************
   template<class FunctionSpaceType>
   class LagrangeBaseFunction < FunctionSpaceType , tetrahedron , 1 >
@@ -205,6 +208,7 @@ namespace Dune {
     RangeField factor[4];
   public:
 
+    //! \todo Please doc me!
     LagrangeBaseFunction ( FunctionSpaceType & f , int baseNum  )
       : BaseFunctionInterface<FunctionSpaceType> (f)
     {
@@ -346,24 +350,24 @@ namespace Dune {
   //
   //! Trilinear BaseFunctions for hexahedrons
   //! v(x,y,z) = (alpha + beta * x) * ( gamma + delta * y) * (omega + eps * z)
-  //
-  //
-  // local node numbers and face numbers for DUNE hexahedrons
-  //
-  //             6---------7
-  //            /.        /|
-  //           / .  5    / |
-  //          /  .      /  |
-  //         4---------5   | <-- 3 (back side)
-  //   0 --> |   .     | 1 |
-  //         |   2.....|...3 (1,1,0)
-  //         |  .      |  /
-  //         | .   2   | / <-- 4 (front side)
-  //         |.        |/
-  //         0---------1
-  //      (0,0,0)    (1,0,0)
-  //  this is the DUNE local coordinate system for hexahedrons
-  //
+  //!
+  //!
+  //! local node numbers and face numbers for DUNE hexahedrons
+  //!
+  //!             6---------7
+  //!            /.        /|
+  //!           / .  5    / |
+  //!          /  .      /  |
+  //!         4---------5   | <-- 3 (back side)
+  //!   0 --> |   .     | 1 |
+  //!         |   2.....|...3 (1,1,0)
+  //!         |  .      |  /
+  //!         | .   2   | / <-- 4 (front side)
+  //!         |.        |/
+  //!         0---------1
+  //!      (0,0,0)    (1,0,0)
+  //!  this is the DUNE local coordinate system for hexahedrons
+  //!
   //*********************************************************************
   template<class FunctionSpaceType>
   class LagrangeBaseFunction<FunctionSpaceType,hexahedron,1>
diff --git a/fem/lagrangebase/lagrangemapper.hh b/fem/lagrangebase/lagrangemapper.hh
index 5445d0f002902c5fa828995cfef9292959a18e7f..8c52377fe5745728383fdacde1c0e0eeed3b76d4 100644
--- a/fem/lagrangebase/lagrangemapper.hh
+++ b/fem/lagrangebase/lagrangemapper.hh
@@ -24,11 +24,14 @@ namespace Dune {
     int level_;
     IndexSetType & indexSet_;
   public:
+    //! Constructor
     LagrangeMapper ( IndexSetType & is, int numLocalDofs , int level )
       : numLocalDofs_ (numLocalDofs) , level_(level) , indexSet_ (is) {}
 
+    //! Destructor
     virtual ~LagrangeMapper () {}
 
+    //! \todo Please doc me!
     int size () const
     {
       return this->codimsize(numCodims-1);
@@ -55,13 +58,16 @@ namespace Dune {
       return (dimrange* indexSet_.template index<codim> (en,locNum) ) + locDim;
     }
 
+    //! \todo Please doc me!
     virtual void calcInsertPoints () {};
 
+    //! \todo Please doc me!
     virtual int numberOfDofs () const
     {
       return numLocalDofs_;
     }
 
+    //! \todo Please doc me!
     virtual int newSize() const
     {
 
diff --git a/fem/norms/l2norm.hh b/fem/norms/l2norm.hh
index ee9c08af9ccc550a0acc349056950d667ff16b90..7b94c29fc8af811c10d5238d0d1fffe58cc4af8a 100644
--- a/fem/norms/l2norm.hh
+++ b/fem/norms/l2norm.hh
@@ -15,6 +15,8 @@ namespace Dune {
     typedef typename DiscreteFunctionType::FunctionSpaceType FunctionSpaceType;
 
   public:
+
+    //! \todo Please doc me!
     double compute (const DiscreteFunctionType &discFunc)
     {
 
diff --git a/fem/operator/laplace.hh b/fem/operator/laplace.hh
index 9aa96b3fb80fd7234db74a316041a59999b60d70..471bf3fde5e2c2f3075ea2d2b87b02e41e6d3dab 100644
--- a/fem/operator/laplace.hh
+++ b/fem/operator/laplace.hh
@@ -91,7 +91,7 @@ namespace Dune
                                           15 * dim);
     }
 
-    //! ???
+    //! Prepares the local operator before calling apply()
     void prepareGlobal ( const DiscFunctionType &arg, DiscFunctionType &dest )
     {
       this->arg_  = &arg.argument();
diff --git a/grid/albertagrid/agcommunicator.hh b/grid/albertagrid/agcommunicator.hh
index 781ee90f48ea565eb3d756d013176e6a0c806274..b02796a7d4bffeb9c74e20e8bf7c88860ae80129 100644
--- a/grid/albertagrid/agcommunicator.hh
+++ b/grid/albertagrid/agcommunicator.hh
@@ -19,13 +19,13 @@ namespace Dune {
 
   static const int COMMUNICATOR_COMM_TAG = 457;
 
+
+#if defined(HAVE_MPI) && defined(ALBERT_USES_MPI)
   /*!
      ProcListElement describes the link between two processors.
      It contains all needed information for cummunication between
      these two procs.
    */
-
-#if defined(HAVE_MPI) && defined(ALBERT_USES_MPI)
   template <class BufferType>
   class ProcListElement
   {
@@ -171,24 +171,21 @@ namespace Dune {
 
 #endif
 
-  /*!
-     AlbertGridCommunicator organizes the communication of AlbertGrid on
-     diffrent processors.
-   */
-
-
+  //! \todo Please doc me!
   template <class T>
   class GathScatt
   {
     T fake;
   public:
 
+    //! \todo Please doc me!
     template <class VecType>
     void gather (VecType & t, int index )
     {
       fake = t[index];
     }
 
+    //! \todo Please doc me!
     template <class VecType>
     void scatter(VecType & t , int index)
     {
@@ -198,6 +195,10 @@ namespace Dune {
   };
 
 #if defined(HAVE_MPI) && defined(ALBERT_USES_MPI)
+  /*!
+     AlbertGridCommunicator organizes the communication of AlbertGrid on
+     diffrent processors.
+   */
   template <class GridType, class IndexSetType>
   class AlbertGridCommunicator
   {
diff --git a/grid/albertagrid/agindex.hh b/grid/albertagrid/agindex.hh
index 05a2440211d7f2eaaa0b40828aec4467817821d2..54b9eb99bf5b503b22656923339698afcca911a8 100644
--- a/grid/albertagrid/agindex.hh
+++ b/grid/albertagrid/agindex.hh
@@ -9,6 +9,7 @@ namespace Dune {
 
   enum INDEXSTATE { NEW, OLD , USED, UNUSED };
 
+  //! \todo Please doc me!
   template <class GridType>
   class SerialIndexSet
   {
@@ -49,12 +50,13 @@ namespace Dune {
     }
 
     //template <class GridType>
+    //! \todo Please doc me!
     void resize (GridType & grid)
     {
       this->resize ( grid.global_size (0));
     }
 
-    // calculate new highest index
+    //! calculate new highest index
     void resize (int newMaxInd )
     {
       if( globalIndex_.size() < newMaxInd )
@@ -95,6 +97,7 @@ namespace Dune {
       //std::cout << nextFreeIndex_ << " freeInd \n";
     }
 
+    //! \todo Please doc me!
     void finish ()
     {
       for(int i=0; i<state_.size(); i++)
@@ -107,6 +110,7 @@ namespace Dune {
       std::cout << maxIndex() << " max Index of Set \n";
     }
 
+    //! \todo Please doc me!
     int maxIndex () const
     {
       int max = 0;
@@ -117,8 +121,7 @@ namespace Dune {
       return max;
     }
 
-
-
+    //! \todo Please doc me!
     int searchNext ()
     {
       if(nextIndex_ >= maxIndex_)
@@ -136,14 +139,14 @@ namespace Dune {
       return globalIndex_[nextIndex_-1];
     }
 
-    // memorise index
+    //! memorise index
     template <class EntityType>
     void insert (EntityType & en)
     {
       this->insert ( en.global_index() );
     }
 
-    // memorise index
+    //! memorise index
     void insert (int num )
     {
       assert(num < globalIndex_.size() );
@@ -166,6 +169,7 @@ namespace Dune {
       state_[num] = USED;
     }
 
+    //! \todo Please doc me!
     void print ( ) const
     {
       std::cout << "Size " << globalIndex_.size() << "\n";
@@ -176,6 +180,7 @@ namespace Dune {
       }
     }
 
+    //! \todo Please doc me!
     bool write_xdr(const char * filename, int timestep)
     {
       FILE  *file;
@@ -198,6 +203,7 @@ namespace Dune {
       fclose(file);
     }
 
+    //! \todo Please doc me!
     bool read_xdr(const char * filename , int timestep)
     {
       FILE   *file;
@@ -223,6 +229,7 @@ namespace Dune {
       return true;
     }
 
+    //! \todo Please doc me!
     bool processXdr(XDR *xdrs)
     {
       xdr_int ( xdrs, &maxIndex_ );
@@ -233,12 +240,14 @@ namespace Dune {
       return true;
     }
 
+    //! \todo Please doc me!
     int size () const
     {
       return nextFreeIndex_;
       //return grid_.global_size(0);
     }
 
+    //! \todo Please doc me!
     bool isNew (int index) const
     {
       if(state_[index] == NEW)
@@ -247,6 +256,7 @@ namespace Dune {
       return false;
     }
 
+    //! \todo Please doc me!
     int operator [] (int i) const
     {
       //printf(" gIndex_[%d] = %d \n",i,globalIndex_[i]);
diff --git a/grid/albertagrid/agmemory.hh b/grid/albertagrid/agmemory.hh
index 810cadc3ef7c6dda4c892785255ec2f3361d74cc..8018ee6c599adb604baeff611866b90691884fea 100644
--- a/grid/albertagrid/agmemory.hh
+++ b/grid/albertagrid/agmemory.hh
@@ -6,13 +6,14 @@
 namespace Dune
 {
 
-  // organize the memory management for entitys used by the NeighborIterator
+  //! organize the memory management for entitys used by the NeighborIterator
   template <class Object>
   class MemoryProvider
   {
   public:
     typedef Object ObjectType;
 
+    //! \todo Please doc me!
     struct ObjectEntity
     {
       ObjectEntity () : next (0), item (0) {};
@@ -21,30 +22,30 @@ namespace Dune
       Object       *item;
     };
 
-    // freeEntity_ = NULL
+    //! freeEntity_ = NULL
     MemoryProvider() : freeEntity_ (0) {};
 
-    // do not copy pointers
+    //! do not copy pointers
     MemoryProvider(const MemoryProvider<Object> & org) : freeEntity_ (0) {}
 
-    // call deleteEntity
+    //! call deleteEntity
     ~MemoryProvider ();
 
-    // delete recursive all free ObjectEntitys
+    //! delete recursive all free ObjectEntitys
     void deleteEntity(ObjectEntity *obj);
 
-    // i.e. return pointer to Entity
+    //! i.e. return pointer to Entity
     template <class GridType>
     ObjectEntity *getNewObjectEntity(GridType &grid, int level);
 
-    // i.e. return pointer to Entity
+    //! i.e. return pointer to Entity
     template <class FuncSpaceType, class DofVecType>
     ObjectEntity *getNewObjectEntity(const FuncSpaceType &f, DofVecType &d);
 
-    // i.e. get pointer to element
+    //! i.e. get pointer to element
     ObjectEntity * getNewObjectEntity();
 
-    // free, move element to stack, returns NULL
+    //! free, move element to stack, returns NULL
     ObjectEntity * freeObjectEntity (ObjectEntity *obj);
 
   private:
@@ -54,7 +55,7 @@ namespace Dune
 
   //************************************************************************
   //
-  //  MemoryProvider
+  //  MemoryProvider implementation
   //
   //************************************************************************
   template <class Object> template <class GridType>
diff --git a/grid/bsgrid/datahandle.hh b/grid/bsgrid/datahandle.hh
index a41e59506e9213c7c8b426c5f557b7d086d7b93f..ec53e99426252aa037eb0feb653c293a3e7a9a62 100644
--- a/grid/bsgrid/datahandle.hh
+++ b/grid/bsgrid/datahandle.hh
@@ -16,6 +16,7 @@ namespace BernhardSchuppGrid {
     typedef ObjectStream ObjectStreamType;
 
   public:
+    //! Constructor
     GatherScatterImpl(GridType & grid, EntityType & en, DataCollectorType & dc)
       : grid_(grid), en_(en), dc_(dc) {}
 
@@ -40,14 +41,14 @@ namespace BernhardSchuppGrid {
       dc_.xtractData(str,en_);
     }
 
-    // write Data of one lement to stream
+    //! write Data of one lement to stream
     virtual void sendData ( ObjectStreamType & str , const HElementType & elem )
     {
       en_.setElement( const_cast<HElementType &> (elem) );
       dc_.scatter(str, en_);
     }
 
-    // read Data of one element from stream
+    //! read Data of one element from stream
     virtual void recvData ( ObjectStreamType & str , HGhostType & ghost )
     {
       // set ghost as entity
diff --git a/grid/bsgrid/leafwalk.hh b/grid/bsgrid/leafwalk.hh
index ecdd4b8f8ae0dda6fca413c8c5012e4e76966a84..306ec19e277a50fc6b350dea7c5f3617e4cd63cd 100644
--- a/grid/bsgrid/leafwalk.hh
+++ b/grid/bsgrid/leafwalk.hh
@@ -3,20 +3,22 @@
 #ifndef __BSGRID_LEAFWALK_HH__
 #define __BSGRID_LEAFWALK_HH__
 
-// new rule for Dune LeafIterator
-// all entities with hav either the level or are leaf entities with one
-// level <= the desired level
+//! new rule for Dune LeafIterator
+//! all entities with hav either the level or are leaf entities with one
+//! level <= the desired level
 template < class A > class leaf_or_has_level
 {
   int lvl;
 public:
   // Constructor storing the level
   leaf_or_has_level (int i = 0) : lvl (i) { }
-
+  //! \todo Please doc me!
   int operator () (const A * x) const
   {
     return ((x->level () == lvl) || (x->leaf () && (x->level () <= lvl) )) ? 1 : 0 ;
   }
+
+  //! \todo Please doc me!
   int operator () (const A & x) const
   {
     return ((x.level  () == lvl) || (x.leaf  () && (x.level  () <= lvl) )) ? 1 : 0 ;
diff --git a/grid/bsgrid/myautoptr.hh b/grid/bsgrid/myautoptr.hh
index 39f1f0559e10a69739dad75b70bd8819b11b2e75..a738b10369ed44e9ff18158f5b8bf4e35b5b2011 100644
--- a/grid/bsgrid/myautoptr.hh
+++ b/grid/bsgrid/myautoptr.hh
@@ -3,19 +3,20 @@
 #ifndef __DUNE_BSGRID_MYAUTOPTR_HH__
 #define __DUNE_BSGRID_MYAUTOPTR_HH__
 
-template <class Pointer>
-class AutoPointer
-{
-  //! Pointer to Object
-  Pointer * ptr_;
+/** \brief An auto pointer class *\
+   template <class Pointer>
+   class AutoPointer
+   {
+   //! Pointer to Object
+   Pointer * ptr_;
 
-  //! number of copies that exist from this Object
-  mutable int *refCount_;
+   //! number of copies that exist from this Object
+   mutable int *refCount_;
 
-public:
-  //! if a copy is made, the refcout is increased
-  inline AutoPointer(const AutoPointer<Pointer> & copy)
-  {
+   public:
+   //! if a copy is made, the refcount is increased
+   inline AutoPointer(const AutoPointer<Pointer> & copy)
+   {
     ptr_ = 0;
     refCount_ = 0;
     if(copy.ptr_)
@@ -24,14 +25,14 @@ public:
       refCount_ = copy.refCount_;
       (*refCount_)++;
     }
-  }
+   }
 
-  //! initialize the member variables
-  AutoPointer() : ptr_ (0) , refCount_ (0) {}
+   //! initialize the member variables
+   AutoPointer() : ptr_ (0) , refCount_ (0) {}
 
-  // store object pointer and creat refCount
-  void store (Pointer * ptr)
-  {
+   // store object pointer and create refCount
+   void store (Pointer * ptr)
+   {
     assert(ptr_ == 0);
     ptr_ = ptr;
     if(ptr_)
@@ -40,11 +41,11 @@ public:
       refCount_ = tmp;
       (*refCount_) = 1;
     }
-  }
+   }
 
-  //! set Stack free, if no more refences exist
-  ~AutoPointer()
-  {
+   //! set Stack free, if no more refences exist
+   ~AutoPointer()
+   {
     if(refCount_ && ptr_)
     {
       (*refCount_)--;
@@ -54,31 +55,32 @@ public:
         if(refCount_) delete refCount_;
       }
     }
-  }
+   }
 
-  // return object reference
-  Pointer & operator * () const
-  {
+   //! return object reference
+   Pointer & operator * () const
+   {
     assert( ptr_ != 0);
     return *ptr_;
-  }
+   }
 
-  // return object pointer
-  Pointer * operator -> () const
-  {
+   //! return object pointer
+   Pointer * operator -> () const
+   {
     assert( ptr_ != 0);
     return ptr_;
-  }
+   }
 
-private:
-  //! if copy is made than one more Reference exists
-  AutoPointer<Pointer> & operator = (const AutoPointer<Pointer> & copy)
-  {
+   private:
+   //! if copy is made than one more Reference exists
+   AutoPointer<Pointer> & operator = (const AutoPointer<Pointer> & copy)
+   {
     assert(false);
     return (*this);
-  }
-};
+   }
+   };
 
 
 
-#endif
+ #endif
+
diff --git a/grid/common/indexstack.hh b/grid/common/indexstack.hh
index 6aa6de82d53890af29ff89946339eaab17c58855..098c80ac5f1b30412ffc45010180aba7ae20fba5 100644
--- a/grid/common/indexstack.hh
+++ b/grid/common/indexstack.hh
@@ -15,6 +15,7 @@
 
 namespace Dune {
 
+  //! \todo Please doc me!
   template <class T, int length>
   class IndexStack
   {
diff --git a/grid/onedgrid/onedgridhieriterator.hh b/grid/onedgrid/onedgridhieriterator.hh
index 74181a06da5f0d10a1132148611420a73c4ae0ff..b1ac1bb6a505fcd7eab2562600c1cfc63c122c15 100644
--- a/grid/onedgrid/onedgridhieriterator.hh
+++ b/grid/onedgrid/onedgridhieriterator.hh
@@ -24,7 +24,6 @@ namespace Dune {
      This is redundant but important for memory efficient implementations of unstru
      hierarchically refined meshes.
    */
-
   template<int dim, int dimworld>
   class OneDGridHierarchicIterator :
     public HierarchicIteratorDefault <dim,dimworld, OneDCType,
diff --git a/grid/uggrid/ugfunctions.hh b/grid/uggrid/ugfunctions.hh
index 202b83d9aa02e34336d76c6419e2e5c63a588094..5fe8c823169023168d8127b03e230a80e31e2eb4 100644
--- a/grid/uggrid/ugfunctions.hh
+++ b/grid/uggrid/ugfunctions.hh
@@ -10,7 +10,7 @@
 #include "ugtypes.hh"
 
 namespace Dune {
-
+  //! \todo Please doc me!
   template<int dim>
   class UG_NS {
   public:
@@ -36,7 +36,7 @@ namespace Dune {
       CORNER_COORDINATES(theElement, n, x);
 #endif
     }
-
+    //! \todo Please doc me!
     static int Sides_Of_Elem(typename TargetType<0,dim>::T* theElement) {
 #ifdef _3
       using UG3d::nb_offset;
@@ -58,7 +58,7 @@ namespace Dune {
 #endif
       return NBELEM(theElement, nb);
     }
-
+    //! \todo Please doc me!
     static int Edges_Of_Elem(const typename TargetType<0,dim>::T* theElement) {
 #ifdef _2
       using UG2d::element_descriptors;
@@ -67,7 +67,7 @@ namespace Dune {
 #endif
       return EDGES_OF_ELEM(theElement);
     }
-
+    //! \todo Please doc me!
     static int Corners_Of_Elem(const typename TargetType<0,dim>::T* theElement) {
 #ifdef _2
       using UG2d::element_descriptors;
@@ -76,7 +76,7 @@ namespace Dune {
 #endif
       return CORNERS_OF_ELEM(theElement);
     }
-
+    //! \todo Please doc me!
     static int Corners_Of_Side(const typename TargetType<0,dim>::T* theElement, int side) {
 #ifdef _2
       using UG2d::element_descriptors;
@@ -85,7 +85,7 @@ namespace Dune {
 #endif
       return CORNERS_OF_SIDE(theElement, side);
     }
-
+    //! \todo Please doc me!
     static int Corner_Of_Side(const typename TargetType<0,dim>::T* theElement, int side, int corner) {
 #ifdef _2
       using UG2d::element_descriptors;
@@ -100,7 +100,7 @@ namespace Dune {
       return TAG(theElement);
     }
 
-
+    //! \todo Please doc me!
     static void Local_To_Global(int n, DOUBLE** y,
                                 const FieldVector<double, dim>& local,
                                 FieldVector<double, dim>& global) {
@@ -134,7 +134,7 @@ namespace Dune {
 #endif
       return CORNER(theElement, i);
     }
-
+    //! \todo Please doc me!
     static typename TargetType<0,dim>::T* EFather(typename TargetType<0,dim>::T* theElement) {
 #ifdef _3
       using UG3d::ELEMENT;
@@ -146,7 +146,7 @@ namespace Dune {
       return EFATHER(theElement);
     }
 
-
+    //! \todo Please doc me!
     static void InitUg(int* argcp, char*** argvp) {
 #ifdef _3
       UG3d::InitUg(argcp, argvp);
@@ -156,6 +156,7 @@ namespace Dune {
     }
 
 #ifdef _3
+    //! \todo Please doc me!
     static void* CreateBoundaryValueProblem(const char* BVPname,
                                             int numOfCoeffFunc,
                                             UG3d::CoeffProcPtr coeffs[],
@@ -165,6 +166,7 @@ namespace Dune {
                                               numOfUserFct, userfct);
     }
 #else
+    //! \todo Please doc me!
     static void* CreateBoundaryValueProblem(const char* BVPname,
                                             int numOfCoeffFunc,
                                             UG2d::CoeffProcPtr coeffs[],
@@ -174,7 +176,7 @@ namespace Dune {
                                               numOfUserFct, userfct);
     }
 #endif
-
+    //! \todo Please doc me!
     static typename UGTypes<dim>::MultiGridType* GetMultigrid(const char* name) {
 #ifdef _3
       return UG3d::GetMultigrid(name);
@@ -182,7 +184,7 @@ namespace Dune {
       return UG2d::GetMultigrid(name);
 #endif
     }
-
+    //! \todo Please doc me!
     static void SetSubdomain(typename TargetType<0,dim>::T* theElement, int id) {
 #ifdef _2
       using UG2d::control_entries;
@@ -195,7 +197,7 @@ namespace Dune {
     }
 
   };
-
+  //! \todo Please doc me!
   template <int codim, int dimworld>
   class UGGridSubEntityFactory {
     //     public:
diff --git a/istl/remoteindices.hh b/istl/remoteindices.hh
index bebe1c50b7329fdc1f7cd665c1590f7670494cb1..bb5111ef2c8df7245320d671c4c578e058628ce6 100644
--- a/istl/remoteindices.hh
+++ b/istl/remoteindices.hh
@@ -151,6 +151,8 @@ namespace Dune {
 
   };
 
+
+  //! \todo Please doc me!
   template<typename T>
   class MPITraits<ParallelLocalIndex<T> >
   {
@@ -161,6 +163,7 @@ namespace Dune {
 
   };
 
+  //! \todo Please doc me!
   template<typename TG, typename TA>
   class MPITraits<IndexPair<TG,ParallelLocalIndex<TA> > >
   {
@@ -558,6 +561,7 @@ namespace Dune {
       typedef typename Map::iterator ConstRealIterator;
 
 
+      //! \todo Please doc me!
       iterator(const RealIterator& iter, const ConstRealIterator& end, TG& index)
         : iter_(iter), end_(end), index_(index)
       {
@@ -566,10 +570,12 @@ namespace Dune {
           ++iter_;
       }
 
+      //! \todo Please doc me!
       iterator(const iterator& other)
         : iter_(other.iter_), end_(other.end_), index_(other.index_)
       { }
 
+      //! \todo Please doc me!
       iterator& operator++()
       {
         ++iter_;
@@ -580,26 +586,31 @@ namespace Dune {
         return *this;
       }
 
+      //! \todo Please doc me!
       const std::pair<int,RemoteIndex>& operator*() const
       {
         return *(iter_->second.first);
       }
 
+      //! \todo Please doc me!
       int process() const
       {
         return iter_->first;
       }
 
+      //! \todo Please doc me!
       const RemoteIndex* operator->() const
       {
         return iter_->second.first.operator->();
       }
 
+      //! \todo Please doc me!
       bool operator==(const iterator& other)
       {
         return other.iter_==iter_;
       }
 
+      //! \todo Please doc me!
       bool operator!=(const iterator& other)
       {
         return other.iter_!=iter_;
diff --git a/solver/common/numproc.hh b/solver/common/numproc.hh
index 28cdfafa89f57760cc7014dc293cd99d7960fc2c..80e9b92b77e38585c790d4c4fd4df80669bd6eb7 100644
--- a/solver/common/numproc.hh
+++ b/solver/common/numproc.hh
@@ -6,6 +6,7 @@
 
 namespace Dune {
 
+  //! \todo Please doc me!
   class NumProc
   {
   public:
diff --git a/solver/gaussseidelstep.hh b/solver/gaussseidelstep.hh
index 418998465c06654b4c0ba29a92fdb8be9959c8c4..58906dd2a1fbda70d12d12ad578aa77c93fdbb34 100644
--- a/solver/gaussseidelstep.hh
+++ b/solver/gaussseidelstep.hh
@@ -7,6 +7,7 @@
 
 namespace Dune {
 
+  //! \todo Please doc me!
   template<class OperatorType, class DiscFuncType>
   class GaussSeidelStep : public IterationStep<OperatorType, DiscFuncType>
   {
@@ -23,8 +24,10 @@ namespace Dune {
     //! Perform one iteration
     virtual void iterate();
 
+    //! \todo Please doc me!
     virtual DiscFuncType getSol();
 
+    //! \todo Please doc me!
     double residual(int index) const;
 
   };