Index: code/branches/FICN/src/orxonox/objects/BaseObject.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 496)
@@ -1,2 +1,7 @@
+/*!
+    @file BaseObject.cc
+    @brief Implementation of the BaseObject class.
+*/
+
 #include "BaseObject.h"
 
@@ -5,4 +10,7 @@
     CreateFactory(BaseObject);
 
+    /**
+        @brief Constructor: Registers the object in the BaseObject-list.
+    */
     BaseObject::BaseObject()
     {
@@ -10,7 +18,9 @@
     }
 
+    /**
+        @brief Destructor
+    */
     BaseObject::~BaseObject()
     {
     }
-    
 }
Index: code/branches/FICN/src/orxonox/objects/BaseObject.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 496)
@@ -1,9 +1,18 @@
+/*!
+    @file BaseObject.h
+    @brief Definition of the BaseObject class.
+
+    The BaseObject is the parent of all classes representing an instance in the game.
+*/
+
 #ifndef _BaseObject_H__
 #define _BaseObject_H__
 
-#include "../core/IdentifierIncludes.h"
+#include "../core/CoreIncludes.h"
+#include "tinyxml/tinyxml.h"
 
 namespace orxonox
 {
+    //! The BaseObject is the parent of all classes representing an instance in the game.
     class BaseObject : virtual public OrxonoxClass
     {
@@ -11,6 +20,5 @@
             BaseObject();
             virtual ~BaseObject();
-			virtual void loadParams(TiXmlElement* xmlElem) {}
-            
+            virtual void loadParams(TiXmlElement* xmlElem) {}
     };
 }
Index: code/branches/FICN/src/orxonox/objects/CMakeLists.txt
===================================================================
--- code/branches/FICN/src/orxonox/objects/CMakeLists.txt	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/CMakeLists.txt	(revision 496)
@@ -3,4 +3,5 @@
 SET( OBJECTS_SRC_FILES
   BaseObject.cc
+  WorldEntity.cc
   test1.cc
   test2.cc
Index: code/branches/FICN/src/orxonox/objects/Test.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Test.h	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/Test.h	(revision 496)
@@ -3,5 +3,5 @@
 
 #include "BaseObject.h"
-#include "../core/IdentifierIncludes.h"
+#include "../core/CoreIncludes.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/Tickable.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 496)
@@ -1,26 +1,49 @@
+/*!
+    @file Tickable.h
+    @brief Definition of the Tickable interface.
+
+    The Tickable interface provides a tick(dt) function, that gets called every frame.
+    float dt is the time since the last frame.
+
+    Attention:
+    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
+    parent::tick(dt) function explicit in their implementation of tick(dt) because it's a virtual function.
+*/
+
 #ifndef _Tickable_H__
 #define _Tickable_H__
 
-#include <OgreFrameListener.h>
-#include "../core/IdentifierIncludes.h"
+#include "../core/CoreIncludes.h"
+#include "OgreFrameListener.h"
 
 namespace orxonox
 {
-    class TickFrameListener;
+    class TickFrameListener; // Forward declaration
 
+    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
     class Tickable : virtual public OrxonoxClass
     {
         public:
+            /**
+                @brief Gets called every frame.
+                @param dt The time since the last frame
+            */
             virtual void tick(float dt) = 0;
 
         protected:
+            /**
+                @brief Constructor: Registers the object in the Tickable-list
+            */
             Tickable() { RegisterRootObject(Tickable); }
     };
 
+    //! The TickFrameListener calls the tick(dt) function of all Tickables every frame.
     class TickFrameListener : public Ogre::FrameListener
     {
         private:
+            /** @brief Gets called before a frame gets rendered. */
             bool frameStarted(const Ogre::FrameEvent &evt)
             {
+                // Iterate through all Tickables and call their tick(dt) function
                 for (Iterator<Tickable> it = ObjectList<Tickable>::start(); it; ++it)
                     it->tick(evt.timeSinceLastFrame);
Index: code/branches/FICN/src/orxonox/objects/Timer.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Timer.h	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/Timer.h	(revision 496)
@@ -1,10 +1,40 @@
+/*!
+    @file Timer.h
+    @brief Definition and Implementation of the Timer class.
+
+    The Timer is a callback-object, calling a given function after a given time-interval.
+
+    Usage:
+    header.h:
+        class ClassName
+        {
+            public:
+                ClassName();
+                void functionName();
+                Timer myTimer;
+        };
+
+    source.cc:
+        ClassName::ClassName()
+        {
+            myTimer.setTimer(interval_in_seconds, bLoop, this, &ClassName::functionName);
+        }
+
+        void ClassName::functionName()
+        {
+            whateveryouwant();
+            something(else);
+        }
+*/
+
 #ifndef _Timer_H__
 #define _Timer_H__
 
-#include <OgreFrameListener.h>
-#include "../core/IdentifierIncludes.h"
+#include "../core/CoreIncludes.h"
+#include "OgreFrameListener.h"
 
 namespace orxonox
 {
+    //! TimerBase is the parent of the Timer class.
     class TimerBase : public OrxonoxClass
     {
@@ -12,4 +42,5 @@
 
         public:
+            /** @brief Constructor: Sets the default-values. */
             TimerBase()
             {
@@ -25,22 +56,29 @@
             virtual void run() const = 0;
 
+            /** @brief Starts the Timer: Function-call after 'interval' seconds. */
             inline void startTimer() { this->bActive_ = true; this->time_ = this->interval_; }
+            /** @brief Stops the Timer. */
             inline void stopTimer() { this->bActive_ = false; this->time_ = this->interval_; }
+            /** @brief Pauses the Timer - it will continue with the actual state if you unpause it. */
             inline void pauseTimer() { this->bActive_ = false; }
+            /** @brief Unpauses the Timer - continues with the given state. */
             inline void unpauseTimer() { this->bActive_ = true; }
+            /** @returns true if the Timer is active (= not stoped, not paused). */
             inline bool isActive() const { return this->bActive_; }
 
         protected:
-            float interval_;
-            bool bLoop_;
-            bool bActive_;
+            float interval_;    //!< The time-interval in seconds
+            bool bLoop_;        //!< If true, the function gets called every 'interval' seconds
+            bool bActive_;      //!< If true, the Timer ticks and calls the function if the time's up
 
-            float time_;
+            float time_;        //!< Internal variable, counting the time till the next function-call
     };
 
+    //! The Timer is a callback-object, calling a given function after a given time-interval.
     template <class T = BaseObject>
     class Timer : public TimerBase
     {
         public:
+            /** @brief Constructor: Sets the default-values. */
             Timer()
             {
@@ -49,4 +87,11 @@
             }
 
+            /**
+                @brief Constructor: Initializes the Timer with given values.
+                @param interval The timer-interval in seconds
+                @param bLoop If true, the function gets called every 'interval' seconds
+                @param object The object owning the timer and the function
+                @param timerFunction A function pointer to the function to call
+            */
             Timer(float interval, bool bLoop, T* object, void (T::*timerFunction)())
             {
@@ -54,4 +99,11 @@
             }
 
+            /**
+                @brief Initializes the Timer with given values.
+                @param interval The timer-interval in seconds
+                @param bLoop If true, the function gets called every 'interval' seconds
+                @param object The object owning the timer and the function
+                @param timerFunction A function pointer to the function to call
+            */
             void setTimer(float interval, bool bLoop, T* object, void (T::*timerFunction)())
             {
@@ -65,4 +117,5 @@
             }
 
+            /** @brief Calls the given function of the given object. */
             void run() const
             {
@@ -75,21 +128,26 @@
     };
 
+    //! The TimerFrameListener manages all Timers in the game.
     class TimerFrameListener : public Ogre::FrameListener
     {
         private:
+            /** @brief Gets called before a frame gets rendered. */
             bool frameStarted(const Ogre::FrameEvent &evt)
             {
+                // Iterate through all Timers
                 for (Iterator<TimerBase> it = ObjectList<TimerBase>::start(); it; ++it)
                 {
                     if (it->isActive())
                     {
+                        // If active: Decrease the timer by the duration of the last frame
                         it->time_ -= evt.timeSinceLastFrame;
 
                         if (it->time_ <= 0)
                         {
+                            // It's time to call the function
                             if (it->bLoop_)
-                                it->time_ += it->interval_;
+                                it->time_ += it->interval_; // Q: Why '+=' and not '='? A: Think about it. It's more accurate like that. Seriously.
                             else
-                                it->stopTimer();
+                                it->stopTimer(); // Stop the timer if we don't want to loop
 
                             it->run();
Index: code/branches/FICN/src/orxonox/objects/test3.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/test3.cc	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/test3.cc	(revision 496)
@@ -10,4 +10,17 @@
     {
         RegisterObject(Test3);
+
+        this->setConfigValues();
+    }
+
+    void Test3::setConfigValues()
+    {
+        SetConfigValue(value_int_, -100);
+        SetConfigValue(value_double_, 10.555678);
+        SetConfigValue(value_bool_, true);
+        SetConfigValue(value_string_, "Dies ist ein Test");
+        SetConfigValue(value_vector2_, Vector2(101, 202));
+        SetConfigValue(value_vector3_, Vector3(13, 26, 39));
+        SetConfigValue(value_colourvalue_, ColourValue(1.0, 0.5, 0.25, 0.887));
     }
 
@@ -15,4 +28,17 @@
     {
     }
+
+        #include <fstream>
+    void Test3::configOutput()
+    {
+        std::cout << this->value_int_ << std::endl;
+        std::cout << this->value_double_ << std::endl;
+        std::cout << this->value_bool_ << std::endl;
+        std::cout << this->value_string_ << std::endl;
+        std::cout << this->value_vector2_ << std::endl;
+        std::cout << this->value_vector3_ << std::endl;
+        std::cout << this->value_colourvalue_ << std::endl;
+    }
+
         #define testandcout(code) \
           std::cout << #code << " " << code << "\n"
Index: code/branches/FICN/src/orxonox/objects/test3.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/test3.h	(revision 482)
+++ code/branches/FICN/src/orxonox/objects/test3.h	(revision 496)
@@ -15,6 +15,19 @@
             virtual ~Test3();
 
+            void setConfigValues();
+
             void usefullClassesIsATest(Test1* test1);
             void usefullClassesIsATest(Test2* test2);
+
+            void configOutput();
+
+        private:
+            int                 value_int_;
+            double              value_double_;
+            bool                value_bool_;
+            std::string         value_string_;
+            Vector2             value_vector2_;
+            Vector3             value_vector3_;
+            ColourValue         value_colourvalue_;
     };
 }
