Index: code/trunk/src/orxonox/tools/BillboardSet.cc
===================================================================
--- code/trunk/src/orxonox/tools/BillboardSet.cc	(revision 1747)
+++ code/trunk/src/orxonox/tools/BillboardSet.cc	(revision 1755)
@@ -50,5 +50,5 @@
         std::ostringstream name;
         name << (BillboardSet::billboardSetCounter_s++);
-        this->billboardSet_ = GraphicsEngine::getSingleton().getSceneManager()->createBillboardSet("Billboard" + name.str(), count);
+        this->billboardSet_ = GraphicsEngine::getInstance().getLevelSceneManager()->createBillboardSet("Billboard" + name.str(), count);
         this->billboardSet_->createBillboard(Vector3::ZERO);
         this->billboardSet_->setMaterialName(file);
@@ -59,5 +59,5 @@
         std::ostringstream name;
         name << (BillboardSet::billboardSetCounter_s++);
-        this->billboardSet_ = GraphicsEngine::getSingleton().getSceneManager()->createBillboardSet("Billboard" + name.str(), count);
+        this->billboardSet_ = GraphicsEngine::getInstance().getLevelSceneManager()->createBillboardSet("Billboard" + name.str(), count);
         this->billboardSet_->createBillboard(Vector3::ZERO, colour);
         this->billboardSet_->setMaterialName(file);
@@ -68,5 +68,5 @@
         std::ostringstream name;
         name << (BillboardSet::billboardSetCounter_s++);
-        this->billboardSet_ = GraphicsEngine::getSingleton().getSceneManager()->createBillboardSet("Billboard" + name.str(), count);
+        this->billboardSet_ = GraphicsEngine::getInstance().getLevelSceneManager()->createBillboardSet("Billboard" + name.str(), count);
         this->billboardSet_->createBillboard(position);
         this->billboardSet_->setMaterialName(file);
@@ -77,5 +77,5 @@
         std::ostringstream name;
         name << (BillboardSet::billboardSetCounter_s++);
-        this->billboardSet_ = GraphicsEngine::getSingleton().getSceneManager()->createBillboardSet("Billboard" + name.str(), count);
+        this->billboardSet_ = GraphicsEngine::getInstance().getLevelSceneManager()->createBillboardSet("Billboard" + name.str(), count);
         this->billboardSet_->createBillboard(position, colour);
         this->billboardSet_->setMaterialName(file);
@@ -85,5 +85,5 @@
     {
         if (this->billboardSet_)
-            GraphicsEngine::getSingleton().getSceneManager()->destroyBillboardSet(this->billboardSet_);
+            GraphicsEngine::getInstance().getLevelSceneManager()->destroyBillboardSet(this->billboardSet_);
     }
 }
Index: code/trunk/src/orxonox/tools/Light.cc
===================================================================
--- code/trunk/src/orxonox/tools/Light.cc	(revision 1747)
+++ code/trunk/src/orxonox/tools/Light.cc	(revision 1755)
@@ -49,5 +49,5 @@
         std::ostringstream name;
         name << (Light::lightCounter_s++);
-        this->light_ = GraphicsEngine::getSingleton().getSceneManager()->createLight("Light" + name.str());
+        this->light_ = GraphicsEngine::getInstance().getLevelSceneManager()->createLight("Light" + name.str());
         this->light_->setType(type);
         this->light_->setDiffuseColour(diffuse);
@@ -58,5 +58,5 @@
     {
         if (this->light_)
-            GraphicsEngine::getSingleton().getSceneManager()->destroyLight(this->light_);
+            GraphicsEngine::getInstance().getLevelSceneManager()->destroyLight(this->light_);
     }
 }
Index: code/trunk/src/orxonox/tools/Mesh.cc
===================================================================
--- code/trunk/src/orxonox/tools/Mesh.cc	(revision 1747)
+++ code/trunk/src/orxonox/tools/Mesh.cc	(revision 1755)
@@ -31,8 +31,7 @@
 
 #include <sstream>
-
 #include <OgreSceneManager.h>
-
 #include "GraphicsEngine.h"
+#include "Settings.h"
 
 namespace orxonox
@@ -49,11 +48,12 @@
         std::ostringstream name;
         name << (Mesh::meshCounter_s++);
-        this->entity_ = GraphicsEngine::getSingleton().getSceneManager()->createEntity("Mesh" + name.str(), file);
+        if (Settings::showsGraphics())
+            this->entity_ = GraphicsEngine::getInstance().getLevelSceneManager()->createEntity("Mesh" + name.str(), file);
     }
 
     Mesh::~Mesh()
     {
-        if (this->entity_)
-            GraphicsEngine::getSingleton().getSceneManager()->destroyEntity(this->entity_);
+        if (this->entity_ && Settings::showsGraphics())
+            GraphicsEngine::getInstance().getLevelSceneManager()->destroyEntity(this->entity_);
     }
 }
Index: code/trunk/src/orxonox/tools/ParticleInterface.cc
===================================================================
--- code/trunk/src/orxonox/tools/ParticleInterface.cc	(revision 1747)
+++ code/trunk/src/orxonox/tools/ParticleInterface.cc	(revision 1755)
@@ -39,5 +39,4 @@
 
 #include "GraphicsEngine.h"
-#include "Orxonox.h"
 #include "core/CoreIncludes.h"
 #include "util/Convert.h"
@@ -55,8 +54,9 @@
     this->bEnabled_ = true;
     this->detaillevel_ = (unsigned int)detaillevel;
-    this->particleSystem_ = GraphicsEngine::getSingleton().getSceneManager()->createParticleSystem("particles" + getConvertedValue<unsigned int, std::string>(ParticleInterface::counter_s++), templateName);
-    this->particleSystem_->setSpeedFactor(Orxonox::getSingleton()->getTimeFactor());
+    this->particleSystem_ = GraphicsEngine::getInstance().getLevelSceneManager()->createParticleSystem("particles" + getConvertedValue<unsigned int, std::string>(ParticleInterface::counter_s++), templateName);
+    //this->particleSystem_->setSpeedFactor(Orxonox::getInstance().getTimeFactor());
+    this->particleSystem_->setSpeedFactor(1.0f);
 
-    if (GraphicsEngine::getSingleton().getDetailLevelParticle() < (unsigned int)this->detaillevel_)
+    if (GraphicsEngine::getInstance().getDetailLevelParticle() < (unsigned int)this->detaillevel_)
     {
       this->bVisible_ = false;
@@ -72,5 +72,5 @@
   {
     this->particleSystem_->removeAllEmitters();
-    GraphicsEngine::getSingleton().getSceneManager()->destroyParticleSystem(particleSystem_);
+    GraphicsEngine::getInstance().getLevelSceneManager()->destroyParticleSystem(particleSystem_);
   }
 
@@ -171,9 +171,11 @@
   void ParticleInterface::setSpeedFactor(float factor)
   {
-    this->particleSystem_->setSpeedFactor(Orxonox::getSingleton()->getTimeFactor() * factor);
+    //this->particleSystem_->setSpeedFactor(Orxonox::getInstance().getTimeFactor() * factor);
+    this->particleSystem_->setSpeedFactor(1.0f * factor);
   }
   float ParticleInterface::getSpeedFactor() const
   {
-    return (this->particleSystem_->getSpeedFactor() / Orxonox::getSingleton()->getTimeFactor());
+    //return (this->particleSystem_->getSpeedFactor() / Orxonox::getInstance().getTimeFactor());
+    return (this->particleSystem_->getSpeedFactor() / 1.0f);
   }
 
Index: code/trunk/src/orxonox/tools/Timer.cc
===================================================================
--- code/trunk/src/orxonox/tools/Timer.cc	(revision 1747)
+++ code/trunk/src/orxonox/tools/Timer.cc	(revision 1755)
@@ -36,4 +36,5 @@
 #include "core/ConsoleCommand.h"
 #include "core/CommandExecutor.h"
+#include "core/Clock.h"
 
 namespace orxonox
@@ -125,10 +126,10 @@
         @brief Updates the timer before the frames are rendered.
     */
-    void TimerBase::tick(float dt)
+    void TimerBase::tick(const Clock& time)
     {
         if (this->bActive_)
         {
             // If active: Decrease the timer by the duration of the last frame
-            this->time_ -= dt;
+            this->time_ -= time.getDeltaTimeMicroseconds();
 
             if (this->time_ <= 0)
Index: code/trunk/src/orxonox/tools/Timer.h
===================================================================
--- code/trunk/src/orxonox/tools/Timer.h	(revision 1747)
+++ code/trunk/src/orxonox/tools/Timer.h	(revision 1755)
@@ -62,5 +62,5 @@
 
 #include "OrxonoxPrereqs.h"
-#include "objects/Tickable.h"
+#include "core/OrxonoxClass.h"
 
 namespace orxonox
@@ -72,5 +72,5 @@
 
     //! TimerBase is the parent of the Timer class.
-    class _OrxonoxExport TimerBase : public Tickable
+    class _OrxonoxExport TimerBase : public OrxonoxClass
     {
         public:
@@ -97,19 +97,19 @@
             /** @brief Returns the remaining time until the Timer calls the function. @return The remaining time */
             inline float getRemainingTime() const
-                { return this->time_; }
+                { return (float)this->time_ / 1000000.0f; }
             /** @brief Gives the Timer some extra time. @param time The amount of extra time in seconds */
             inline void addTime(float time)
-                { this->time_ += time; }
+                { if (time > 0.0f) this->time_ += (long long)(time * 1000000.0f); }
             /** @brief Decreases the remaining time of the Timer. @param time The amount of time to remove */
             inline void removeTime(float time)
-                { this->time_ -= time; }
+                { if (time > 0.0f) this->time_ -= (long long)(time * 1000000.0f); }
             /** @brief Sets the interval of the Timer. @param interval The interval */
             inline void setInterval(float interval)
-                { this->interval_ = interval; }
+                { this->interval_ = (long long)(interval * 1000000.0f); }
             /** @brief Sets bLoop to a given value. @param bLoop True = loop */
             inline void setLoop(bool bLoop)
                 { this->bLoop_ = bLoop; }
 
-            void tick(float dt);
+            void tick(const Clock& time);
 
         protected:
@@ -118,9 +118,9 @@
             Executor* executor_; //!< The executor of the function that should be called when the time expires
 
-            float interval_;     //!< The time-interval in seconds
+            long long interval_; //!< The time-interval in micro 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_;         //!< Internal variable, counting the time till the next function-call
+            long long time_;     //!< Internal variable, counting the time till the next function-call
     };
 
@@ -155,5 +155,5 @@
                 this->deleteExecutor();
 
-                this->interval_ = interval;
+                this->setInterval(interval);
                 this->bLoop_ = bLoop;
                 executor->setObject(object);
@@ -161,5 +161,5 @@
                 this->bActive_ = true;
 
-                this->time_ = interval;
+                this->time_ = this->interval_;
             }
     };
@@ -193,10 +193,10 @@
                 this->deleteExecutor();
 
-                this->interval_ = interval;
+                this->setInterval(interval);
                 this->bLoop_ = bLoop;
                 this->executor_ = (Executor*)executor;
                 this->bActive_ = true;
 
-                this->time_ = interval;
+                this->time_ = this->interval_;
             }
     };
Index: code/trunk/src/orxonox/tools/WindowEventListener.h
===================================================================
--- code/trunk/src/orxonox/tools/WindowEventListener.h	(revision 1747)
+++ code/trunk/src/orxonox/tools/WindowEventListener.h	(revision 1755)
@@ -45,12 +45,12 @@
         virtual ~WindowEventListener() { }
 
-		    /** Window has moved position */
-		    virtual void windowMoved() { }
+            /** Window has moved position */
+            virtual void windowMoved() { }
 
-		    /** Window has resized */
-		    virtual void windowResized(int newWidth, int newHeight) { }
+            /** Window has resized */
+            virtual void windowResized(int newWidth, int newHeight) { }
 
-		    /** Window has lost/gained focus */
-		    virtual void windowFocusChanged() { }
+            /** Window has lost/gained focus */
+            virtual void windowFocusChanged() { }
     };
 }
