Index: code/trunk/src/libraries/tools/CMakeLists.txt
===================================================================
--- code/trunk/src/libraries/tools/CMakeLists.txt	(revision 8366)
+++ code/trunk/src/libraries/tools/CMakeLists.txt	(revision 8729)
@@ -1,10 +1,13 @@
 SET_SOURCE_FILES(TOOLS_SRC_FILES
-COMPILATION_BEGIN ResourceCompilation.cc
+
+BUILD_UNIT ResourceBuildUnit.cc
   ResourceCollection.cc
   ResourceLocation.cc
-COMPILATION_END
+END_BUILD_UNIT
+
   TextureGenerator.cc
   Timer.cc
-COMPILATION_BEGIN OgreCompilation.cc
+
+BUILD_UNIT OgreBuildUnit.cc
   BillboardSet.cc
   DynamicLines.cc
@@ -13,6 +16,7 @@
   ParticleInterface.cc
   Shader.cc
-COMPILATION_END
+END_BUILD_UNIT
 )
+
 #ADD_SUBDIRECTORY(bsp)
 ADD_SUBDIRECTORY(interfaces)
Index: code/trunk/src/libraries/tools/Shader.h
===================================================================
--- code/trunk/src/libraries/tools/Shader.h	(revision 8366)
+++ code/trunk/src/libraries/tools/Shader.h	(revision 8729)
@@ -32,12 +32,9 @@
 #include "tools/ToolsPrereqs.h"
 
-#include <map>
+#include <list>
 #include <string>
-#include <vector>
-
 #include <OgreCompositorInstance.h>
 
 #include "util/MultiType.h"
-#include "util/OgreForwardRefs.h"
 #include "core/ViewportEventListener.h"
 
Index: code/trunk/src/libraries/tools/Timer.cc
===================================================================
--- code/trunk/src/libraries/tools/Timer.cc	(revision 8366)
+++ code/trunk/src/libraries/tools/Timer.cc	(revision 8729)
@@ -42,4 +42,5 @@
 #include "core/command/ConsoleCommand.h"
 #include "core/command/CommandExecutor.h"
+#include "core/command/Executor.h"
 #include "core/command/Functor.h"
 #include "tools/interfaces/TimeFactorListener.h"
@@ -175,4 +176,24 @@
     {
         return TimeFactorListener::getTimeFactor();
+    }
+
+    /**
+        @brief Initializes and starts the timer, which will call an executor after some time.
+        @param interval         The timer-interval in seconds
+        @param bLoop            If true, the executor gets called every @a interval seconds
+        @param executor         The executor that will be called
+        @param bKillAfterCall   If true, the timer will be deleted after the executor was called
+    */
+    void Timer::setTimer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall)
+    {
+        this->setInterval(interval);
+        this->bLoop_ = bLoop;
+        this->executor_ = executor;
+        this->bActive_ = true;
+
+        this->time_ = this->interval_;
+        this->bKillAfterCall_ = bKillAfterCall;
+
+        executor->getFunctor()->setSafeMode(true);
     }
 
Index: code/trunk/src/libraries/tools/Timer.h
===================================================================
--- code/trunk/src/libraries/tools/Timer.h	(revision 8366)
+++ code/trunk/src/libraries/tools/Timer.h	(revision 8729)
@@ -80,5 +80,5 @@
 
 #include "core/OrxonoxClass.h"
-#include "core/command/Executor.h"
+#include "core/command/ExecutorPtr.h"
 
 namespace orxonox
@@ -109,23 +109,5 @@
             Timer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false);
 
-            /**
-                @brief Initializes and starts the timer, which will call an executor after some time.
-                @param interval         The timer-interval in seconds
-                @param bLoop            If true, the executor gets called every @a interval seconds
-                @param executor         The executor that will be called
-                @param bKillAfterCall   If true, the timer will be deleted after the executor was called
-            */
-            void setTimer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false)
-            {
-                this->setInterval(interval);
-                this->bLoop_ = bLoop;
-                this->executor_ = executor;
-                this->bActive_ = true;
-
-                this->time_ = this->interval_;
-                this->bKillAfterCall_ = bKillAfterCall;
-
-                executor->getFunctor()->setSafeMode(true);
-            }
+            void setTimer(float interval, bool bLoop, const ExecutorPtr& executor, bool bKillAfterCall = false);
 
             void run();
