Index: code/branches/network/src/network/Client.h
===================================================================
--- code/branches/network/src/network/Client.h	(revision 915)
+++ code/branches/network/src/network/Client.h	(revision 917)
@@ -16,5 +16,5 @@
 #include <string>
 
-#include "orxonox/objects/Tickable.h"
+#include "core/Tickable.h"
 
 #include "NetworkPrereqs.h"
Index: code/branches/network/src/network/Server.cc
===================================================================
--- code/branches/network/src/network/Server.cc	(revision 915)
+++ code/branches/network/src/network/Server.cc	(revision 917)
@@ -13,4 +13,5 @@
 #include <iostream>
 
+#include "util/Sleep.h"
 #include "ConnectionManager.h"
 #include "PacketTypes.h"
@@ -112,4 +113,5 @@
     processQueue();
     updateGamestate();
+
     sleep(1); // TODO remove
     return;
Index: code/branches/network/src/network/Server.h
===================================================================
--- code/branches/network/src/network/Server.h	(revision 915)
+++ code/branches/network/src/network/Server.h	(revision 917)
@@ -16,5 +16,5 @@
 #include <string>
 
-#include "orxonox/objects/Tickable.h"
+#include "core/Tickable.h"
 
 #include "PacketManager.h"
Index: code/branches/network/src/orxonox/Orxonox.cc
===================================================================
--- code/branches/network/src/orxonox/Orxonox.cc	(revision 915)
+++ code/branches/network/src/orxonox/Orxonox.cc	(revision 917)
@@ -44,4 +44,6 @@
 #include <OgreOverlay.h>
 #include <OgreOverlayManager.h>
+#include <OgreTimer.h>
+#include <OgreWindowEventUtilities.h>
 
 //****** OIS *******
@@ -56,6 +58,5 @@
 #include "util/Sleep.h"
 
-// loader and audio
-//#include "loader/LevelLoader.h"
+// audio
 #include "audio/AudioManager.h"
 
@@ -69,11 +70,11 @@
 
 // objects
-#include "objects/Tickable.h"
 #include "tools/Timer.h"
-#include "objects/NPC.h"
+#include "tools/OrxListener.h"
 #include "core/ArgReader.h"
+#include "core/Debug.h"
 #include "core/Factory.h"
-#include "core/Debug.h"
 #include "core/Loader.h"
+#include "core/Tickable.h"
 #include "hud/HUD.h"
 #include "objects/weapon/BulletManager.h"
@@ -84,49 +85,5 @@
 namespace orxonox
 {
-   // put this in a seperate Class or solve the problem in another fashion
-  class OrxListener : public Ogre::FrameListener
-  {
-    public:
-      OrxListener(OIS::Keyboard *keyboard, audio::AudioManager*  auMan, gameMode mode)
-      {
-        mKeyboard = keyboard;
-        mode_=mode;
-        auMan_ = auMan;
-      }
-
-      bool frameStarted(const Ogre::FrameEvent& evt)
-      {
-        auMan_->update();
-        updateAI();
-
-//         if(mode_ == SERVER)
-//           server_g->tick(evt.timeSinceLastFrame);
-//         else if(mode_ == CLIENT)
-//           client_g->tick(evt.timeSinceLastFrame);
-
-        usleep(10);
-
-        if(mode_!=CLIENT){
-        mKeyboard->capture();
-        return !mKeyboard->isKeyDown(OIS::KC_ESCAPE);
-        }else
-          return true;
-      }
-
-      void updateAI()
-      {
-        for(Iterator<NPC> it = ObjectList<NPC>::start(); it; ++it)
-        {
-          it->update();
-        }
-      }
-
-    private:
-      gameMode mode_;
-      OIS::Keyboard *mKeyboard;
-      audio::AudioManager*  auMan_;
-  };
-
-  // init static singleton reference of Orxonox
+  /// init static singleton reference of Orxonox
   Orxonox* Orxonox::singletonRef_ = NULL;
 
@@ -138,5 +95,4 @@
     this->ogre_ = new GraphicsEngine();
     this->dataPath_ = "";
-//    this->loader_ = 0;
     this->auMan_ = 0;
     this->singletonRef_ = 0;
@@ -146,4 +102,7 @@
     this->frameListener_ = 0;
     this->root_ = 0;
+    // turn frame smoothing on by setting a value different from 0
+    this->frameSmoothingTime_ = 0.0f;
+    this->bAbort_ = false;
   }
 
@@ -159,5 +118,5 @@
    * initialization of Orxonox object
    * @param argc argument counter
-   * @param argv list of arguments
+   * @param argv list of argumenst
    * @param path path to config (in home dir or something)
    */
@@ -281,4 +240,12 @@
     //TODO: destroy and destruct everything and print nice error msg
     delete this;
+  }
+
+  /**
+    Asks the mainloop nicely to abort.
+  */
+  void Orxonox::abortRequest()
+  {
+    bAbort_ = true;
   }
 
@@ -365,8 +332,4 @@
   }
 
-  /**
-   *
-   * @param
-   */
   void Orxonox::createScene(void)
   {
@@ -383,8 +346,8 @@
 
     Ogre::Overlay* hudOverlay = Ogre::OverlayManager::getSingleton().getByName("Orxonox/HUD1.2");
-    HUD* orxonoxHud;
-    orxonoxHud = new HUD();
-    orxonoxHud->setEnergyValue(20);
-    orxonoxHud->setEnergyDistr(20,20,60);
+    //HUD* orxonoxHud;
+    orxonoxHUD_ = new HUD();
+    orxonoxHUD_->setEnergyValue(20);
+    orxonoxHUD_->setEnergyDistr(20,20,60);
     hudOverlay->show();
 
@@ -398,7 +361,4 @@
 
 
-  /**
-   *
-   */
   void Orxonox::setupScene()
   {
@@ -451,13 +411,5 @@
   void Orxonox::createFrameListener()
   {
-    TickFrameListener* TickFL = new TickFrameListener();
-    ogre_->getRoot()->addFrameListener(TickFL);
-
-    TimerFrameListener* TimerFL = new TimerFrameListener();
-    ogre_->getRoot()->addFrameListener(TimerFL);
-
-    //if(mode_!=CLIENT) // FIXME just a hack ------- remove this in future
-      frameListener_ = new OrxListener(keyboard_, auMan_, mode_);
-    ogre_->getRoot()->addFrameListener(frameListener_);
+    frameListener_ = new OrxListener(keyboard_, auMan_, mode_);
   }
 
@@ -477,5 +429,112 @@
       ms.height = height;
     }
-    ogre_->getRoot()->startRendering();
+    mainLoop();
+  }
+
+  /**
+    Main loop of the orxonox game.
+    This is a new solution, using the ogre engine instead of beeing used by it.
+    An alternative solution would be to simply use the timer of the Root object,
+    but that implies using Ogre in any case. There would be no way to test
+    our code without the help of the root object.
+    There's even a chance that we can dispose of the root object entirely
+    in server mode.
+    About the loop: The design is almost exactly like the one in ogre, so that
+    if any part of ogre registers a framelisteners, it will still behave
+    correctly. Furthermore I have taken over the time smoothing feature from
+    ogre. If turned on (see orxonox constructor), it will calculate the dt_n by
+    means of the recent most dt_n-1, dt_n-2, etc.
+  */
+  void Orxonox::mainLoop()
+  {
+    // use the ogre timer class to measure time.
+    Ogre::Timer *timer = new Ogre::Timer();
+    timer->reset();
+
+    // Contains the times of recently fired events
+    std::deque<unsigned long> eventTimes[3];
+    // Clear event times
+    for (int i = 0; i < 3; ++i)
+      eventTimes[i].clear();
+
+	  while (!bAbort_)
+	  {
+		  // Pump messages in all registered RenderWindows
+      Ogre::WindowEventUtilities::messagePump();
+
+      // get current time
+      unsigned long now = timer->getMilliseconds();
+
+      // create an event to pass to the frameStarted method in ogre
+      Ogre::FrameEvent evt;
+      evt.timeSinceLastEvent = calculateEventTime(now, eventTimes[0]);
+      evt.timeSinceLastFrame = calculateEventTime(now, eventTimes[1]);
+
+      // show the current time in the HUD
+      orxonoxHUD_->setTime((int)now, 0);
+
+      // don't forget to call _fireFrameStarted in ogre to make sure
+      // everything goes smoothly
+      if (!ogre_->getRoot()->_fireFrameStarted(evt))
+        break;
+
+      // Iterate through all Tickables and call their tick(dt) function
+      for (Iterator<Tickable> it = ObjectList<Tickable>::start(); it; )
+        (it++)->tick((float)evt.timeSinceLastFrame);
+
+      if (mode_ != SERVER)
+      {
+        // only render in non-server mode
+        ogre_->getRoot()->_updateAllRenderTargets();
+      }
+
+      // get current time
+      now = timer->getMilliseconds();
+
+      // create an event to pass to the frameEnded method in ogre
+      evt.timeSinceLastEvent = calculateEventTime(now, eventTimes[0]);
+      evt.timeSinceLastFrame = calculateEventTime(now, eventTimes[2]);
+
+      // again, just to be sure ogre works fine
+      if (!ogre_->getRoot()->_fireFrameEnded(evt))
+        break;
+	  }
+  }
+
+  /**
+    Method for calculating the average time between recently fired events.
+    Code directly taken from OgreRoot.cc
+    @param now The current time in ms.
+    @param type The type of event to be considered.
+  */
+  float Orxonox::calculateEventTime(unsigned long now, std::deque<unsigned long> &times)
+  {
+    // Calculate the average time passed between events of the given type
+    // during the last mFrameSmoothingTime seconds.
+
+    times.push_back(now);
+
+    if(times.size() == 1)
+      return 0;
+
+    // Times up to mFrameSmoothingTime seconds old should be kept
+    unsigned long discardThreshold =
+      static_cast<unsigned long>(frameSmoothingTime_ * 1000.0f);
+
+    // Find the oldest time to keep
+    std::deque<unsigned long>::iterator it = times.begin(),
+      end = times.end()-2; // We need at least two times
+    while(it != end)
+    {
+      if (now - *it > discardThreshold)
+        ++it;
+      else
+        break;
+    }
+
+    // Remove old times
+    times.erase(times.begin(), it);
+
+    return (float)(times.back() - times.front()) / ((times.size()-1) * 1000);
   }
 }
Index: code/branches/network/src/orxonox/Orxonox.h
===================================================================
--- code/branches/network/src/orxonox/Orxonox.h	(revision 915)
+++ code/branches/network/src/orxonox/Orxonox.h	(revision 917)
@@ -9,4 +9,5 @@
 
 #include <string>
+#include <deque>
 
 #include <OgrePrerequisites.h>
@@ -37,4 +38,5 @@
       // not sure if this should be private
       void die(/* some error code */);
+      void abortRequest();
       static Orxonox* getSingleton();
       inline Ogre::SceneManager* getSceneManager()         { return ogre_->getSceneManager(); };
@@ -65,4 +67,7 @@
       void createFrameListener();
       void startRenderLoop();
+      void mainLoop();
+      void updateTimers(float);
+      float calculateEventTime(unsigned long, std::deque<unsigned long>&);
 
     private:
@@ -78,4 +83,9 @@
       OrxListener*          frameListener_;
       Ogre::Root*           root_;
+      // TODO: make this a config-value by creating a config class for orxonox
+      float                 frameSmoothingTime_;
+      // little hack to actually show something dynamic in the HUD
+      HUD*                  orxonoxHUD_;
+      bool                  bAbort_;
 
       // this is used to identify the mode (server/client/...) we're in
Index: code/branches/network/src/orxonox/OrxonoxPlatform.h
===================================================================
--- code/branches/network/src/orxonox/OrxonoxPlatform.h	(revision 915)
+++ code/branches/network/src/orxonox/OrxonoxPlatform.h	(revision 917)
@@ -210,5 +210,9 @@
 //#   pragma warning (disable : 4503)
 
-// disable: "conversion from 'double' to 'float', possible loss of data
+// disable: conversion from 'double' to 'float', possible loss of data
+// disable: conversion from 'ogg_int64_t' to 'long', possible loss of data
+// This has been dealt with in base_properties of the solution since the
+// warning primarily occurs in library header files (which are mostly
+// included before OrxonoxPlatform.h is)
 //#   pragma warning (disable : 4244)
 
@@ -221,5 +225,12 @@
 // disable: "<type> needs to have dll-interface to be used by clients'
 // Happens on STL member variables which are not public therefore is ok
+// This has been dealt with in base_properties of the solution since the
+// warning primarily occurs in library header files (which are mostly
+// included before OrxonoxPlatform.h is)
 //#   pragma warning (disable : 4251)
+
+// disable: 'MultiTypeString' : multiple assignment operators specified
+// Used in MultiType and works fine so far
+#   pragma warning (disable : 4522)
 
 // disable: "non dll-interface class used as base for dll-interface class"
@@ -251,4 +262,10 @@
 #endif
 
+
+// Define the english written operators like and, or, xor
+#if ORXONOX_COMPILER == ORXONOX_COMPILER_MSVC
+#  include <iso646.h>
+#endif
+
 } /* namespace orxonox */
 
Index: code/branches/network/src/orxonox/OrxonoxStableHeaders.h
===================================================================
--- code/branches/network/src/orxonox/OrxonoxStableHeaders.h	(revision 915)
+++ code/branches/network/src/orxonox/OrxonoxStableHeaders.h	(revision 917)
@@ -73,8 +73,11 @@
 //#include "audio/AudioManager.h"
 
-//#include "core/CoreIncludes.h"
+#include "core/CoreIncludes.h"
 #include "core/BaseObject.h"
 //#include "core/ArgReader.h"
 #include "core/Error.h"
+#include "core/Loader.h"
+#include "core/XMLPort.h"
+#include "core/Tickable.h"
 
 #include "network/Synchronisable.h"
@@ -87,4 +90,11 @@
 #include "util/String2Number.h"
 #include "util/Tokenizer.h"
+#include "util/Multitype.h"
+#include "util/MultiTypeMath.h"
+#include "util/MultiTypePrimitive.h"
+#include "util/MultiTypeString.h"
+#include "util/substring.h"
+#include "util/XMLIncludes.h"
+
 #include "util/tinyxml/ticpp.h"
 #include "util/tinyxml/tinyxml.h"
@@ -106,5 +116,4 @@
 //#include "objects/Skybox.h"
 //#include "objects/SpaceShipSteeringObject.h"
-#include "objects/Tickable.h"
 #include "objects/WorldEntity.h"
 //#include "particle/ParticleInterface.h"
Index: code/branches/network/src/orxonox/core/Identifier.h
===================================================================
--- code/branches/network/src/orxonox/core/Identifier.h	(revision 915)
+++ code/branches/network/src/orxonox/core/Identifier.h	(revision 917)
@@ -206,5 +206,5 @@
     };
 
-    std::ostream& operator<<(std::ostream& out, const std::list<const Identifier*>& list);
+    _CoreExport std::ostream& operator<<(std::ostream& out, const std::list<const Identifier*>& list);
 
 
Index: code/branches/network/src/orxonox/core/Tickable.cc
===================================================================
--- code/branches/network/src/orxonox/core/Tickable.cc	(revision 917)
+++ code/branches/network/src/orxonox/core/Tickable.cc	(revision 917)
@@ -0,0 +1,42 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+
+#include "core/CoreIncludes.h"
+#include "Tickable.h"
+
+namespace orxonox
+{
+    /**
+        @brief Constructor: Registers the object in the Tickable-list
+    */
+    Tickable::Tickable()
+    {
+        RegisterRootObject(Tickable);
+    }
+}
Index: code/branches/network/src/orxonox/core/Tickable.h
===================================================================
--- code/branches/network/src/orxonox/core/Tickable.h	(revision 917)
+++ code/branches/network/src/orxonox/core/Tickable.h	(revision 917)
@@ -0,0 +1,66 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/*!
+    @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 in seconds.
+
+    Attention:
+    Classes derived from a Tickable that want to have a tick(dt) function on their part, MUST call the
+    parent::tick(dt) function explicitly in their implementation of tick(dt) because it's a virtual function.
+*/
+
+#ifndef _Tickable_H__
+#define _Tickable_H__
+
+#include "../OrxonoxPrereqs.h"
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    //class TickFrameListener; // Forward declaration
+
+    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
+    class _CoreExport Tickable : virtual public OrxonoxClass
+    {
+        public:
+            /**
+                @brief Gets called every frame.
+                @param dt The time since the last frame in seconds
+            */
+            virtual void tick(float dt) = 0;
+
+        protected:
+            Tickable();
+    };
+
+}
+
+#endif /* _Tickable_H__ */
Index: code/branches/network/src/orxonox/objects/Tickable.cc
===================================================================
--- code/branches/network/src/orxonox/objects/Tickable.cc	(revision 915)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#include "core/CoreIncludes.h"
-#include "Tickable.h"
-
-namespace orxonox
-{
-    /**
-        @brief Constructor: Registers the object in the Tickable-list
-    */
-    Tickable::Tickable()
-    {
-        RegisterRootObject(Tickable);
-    }
-}
Index: code/branches/network/src/orxonox/objects/Tickable.h
===================================================================
--- code/branches/network/src/orxonox/objects/Tickable.h	(revision 915)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Fabian 'x3n' Landau
- *   Co-authors:
- *      ...
- *
- */
-
-/*!
-    @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 in seconds.
-
-    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 "../OrxonoxPrereqs.h"
-#include "core/OrxonoxClass.h"
-
-namespace orxonox
-{
-    class TickFrameListener; // Forward declaration
-
-    //! The Tickable interface provides a tick(dt) function, that gets called every frame.
-    class _OrxonoxExport Tickable : virtual public OrxonoxClass
-    {
-        public:
-            /**
-                @brief Gets called every frame.
-                @param dt The time since the last frame in seconds
-            */
-            virtual void tick(float dt) = 0;
-
-        protected:
-            Tickable();
-    };
-
-    //! The TickFrameListener calls the tick(dt) function of all Tickables every frame.
-    class _OrxonoxExport 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++)->tick(evt.timeSinceLastFrame);
-
-                return FrameListener::frameStarted(evt);
-            }
-    };
-}
-
-#endif /* _Tickable_H__ */
Index: code/branches/network/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 915)
+++ code/branches/network/src/orxonox/objects/WorldEntity.h	(revision 917)
@@ -12,5 +12,5 @@
 //#include "util/tinyxml/tinyxml.h"
 #include "core/BaseObject.h"
-#include "Tickable.h"
+#include "core/Tickable.h"
 #include "../tools/Mesh.h"
 
Index: code/branches/network/src/orxonox/objects/weapon/BulletManager.h
===================================================================
--- code/branches/network/src/orxonox/objects/weapon/BulletManager.h	(revision 915)
+++ code/branches/network/src/orxonox/objects/weapon/BulletManager.h	(revision 917)
@@ -39,5 +39,5 @@
 #include "util/tinyxml/tinyxml.h"
 #include "core/BaseObject.h"
-#include "../Tickable.h"
+#include "core/Tickable.h"
 
 namespace orxonox {
Index: code/branches/network/src/orxonox/tools/OrxListener.cc
===================================================================
--- code/branches/network/src/orxonox/tools/OrxListener.cc	(revision 917)
+++ code/branches/network/src/orxonox/tools/OrxListener.cc	(revision 917)
@@ -0,0 +1,62 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+
+#include "core/CoreIncludes.h"
+#include "objects/NPC.h"
+#include "audio/AudioManager.h"
+#include "Orxonox.h"
+#include "OrxListener.h"
+
+namespace orxonox
+{
+  OrxListener::OrxListener(OIS::Keyboard *keyboard, audio::AudioManager*  auMan, gameMode mode)
+  {
+    keyboard_ = keyboard;
+    mode_=mode;
+    auMan_ = auMan;
+  }
+
+  void OrxListener::tick(float dt)
+  {
+    auMan_->update();
+    updateAI();
+
+    keyboard_->capture();
+    if (keyboard_->isKeyDown(OIS::KC_ESCAPE))
+      Orxonox::getSingleton()->abortRequest();
+  }
+
+  void OrxListener::updateAI()
+  {
+    for(Iterator<NPC> it = ObjectList<NPC>::start(); it; ++it)
+    {
+      it->update();
+    }
+  }
+}
Index: code/branches/network/src/orxonox/tools/OrxListener.h
===================================================================
--- code/branches/network/src/orxonox/tools/OrxListener.h	(revision 917)
+++ code/branches/network/src/orxonox/tools/OrxListener.h	(revision 917)
@@ -0,0 +1,60 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/*!
+    @file
+    Hack for the AI and server/client update.
+*/
+
+#ifndef _OrxListener_H__
+#define _OrxListener_H__
+
+#include <OIS/OISPrereqs.h>
+
+#include "../OrxonoxPrereqs.h"
+#include "audio/AudioPrereqs.h"
+#include "Orxonox.h"
+#include "core/Tickable.h"
+
+namespace orxonox
+{
+  class OrxListener : public Tickable
+  {
+    public:
+      OrxListener(OIS::Keyboard *keyboard, audio::AudioManager*  auMan, gameMode mode);
+
+      void tick(float dt);
+      void updateAI();
+
+    private:
+      gameMode mode_;
+      audio::AudioManager* auMan_;
+      OIS::Keyboard *keyboard_;
+  };
+}
+
+#endif /* _OrxListener_H__ */
Index: code/branches/network/src/orxonox/tools/Timer.cc
===================================================================
--- code/branches/network/src/orxonox/tools/Timer.cc	(revision 915)
+++ code/branches/network/src/orxonox/tools/Timer.cc	(revision 917)
@@ -1,2 +1,31 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+#include "OrxonoxStableHeaders.h"
+
 #include "core/CoreIncludes.h"
 #include "Timer.h"
@@ -17,3 +46,28 @@
         this->time_ = 0;
     }
+
+    /**
+        @brief Updates the timer before the frames are rendered.
+    */
+    void TimerBase::tick(float dt)
+    {
+        if (this->bActive_)
+        {
+            // If active: Decrease the timer by the duration of the last frame
+            this->time_ -= dt;
+
+            if (this->time_ <= 0)
+            {
+                // It's time to call the function
+                if (this->bLoop_)
+                    // Q: Why '+=' and not '='? A: Think about it. It's more accurate like that. Seriously.
+                    this->time_ += this->interval_;
+                else
+                    this->stopTimer(); // Stop the timer if we don't want to loop
+
+                this->run();
+            }
+        }
+    }
+
 }
Index: code/branches/network/src/orxonox/tools/Timer.h
===================================================================
--- code/branches/network/src/orxonox/tools/Timer.h	(revision 915)
+++ code/branches/network/src/orxonox/tools/Timer.h	(revision 917)
@@ -58,14 +58,12 @@
 #define _Timer_H__
 
-#include <OgreFrameListener.h>
 #include "../OrxonoxPrereqs.h"
+#include "core/Tickable.h"
 
 namespace orxonox
 {
     //! TimerBase is the parent of the Timer class.
-    class _OrxonoxExport TimerBase : public OrxonoxClass
+    class _OrxonoxExport TimerBase : public Tickable
     {
-        friend class TimerFrameListener;
-
         public:
             TimerBase();
@@ -83,4 +81,6 @@
             /** @brief Returns true if the Timer is active (= not stoped, not paused). @return True = Time is active */
             inline bool isActive() const { return this->bActive_; }
+
+            void tick(float dt);
 
         protected:
@@ -145,39 +145,4 @@
     };
 
-    //! 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; )
-                {
-                    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_; // Q: Why '+=' and not '='? A: Think about it. It's more accurate like that. Seriously.
-                            else
-                                it->stopTimer(); // Stop the timer if we don't want to loop
-
-                            (it++)->run();
-                        }
-                        else
-                            ++it;
-                    }
-                    else
-                        ++it;
-                }
-
-                return FrameListener::frameStarted(evt);
-            }
-    };
 }
 
Index: code/branches/network/src/util/Math.h
===================================================================
--- code/branches/network/src/util/Math.h	(revision 915)
+++ code/branches/network/src/util/Math.h	(revision 917)
@@ -147,2 +147,3 @@
 
 #endif /* _Math_H__ */
+
Index: code/branches/network/src/util/MultiTypeMath.h
===================================================================
--- code/branches/network/src/util/MultiTypeMath.h	(revision 915)
+++ code/branches/network/src/util/MultiTypeMath.h	(revision 917)
@@ -153,5 +153,5 @@
 };
 
-std::ostream& operator<<(std::ostream& out, MultiTypeMath& mtm);
+_UtilExport std::ostream& operator<<(std::ostream& out, MultiTypeMath& mtm);
 
 #endif /* _MultiTypeMath_H__ */
Index: code/branches/network/src/util/MultiTypePrimitive.h
===================================================================
--- code/branches/network/src/util/MultiTypePrimitive.h	(revision 915)
+++ code/branches/network/src/util/MultiTypePrimitive.h	(revision 917)
@@ -175,5 +175,5 @@
 };
 
-std::ostream& operator<<(std::ostream& out, const MultiTypePrimitive& mtp);
+_UtilExport std::ostream& operator<<(std::ostream& out, const MultiTypePrimitive& mtp);
 
 #endif /* _MultiTypePrimitive_H__ */
Index: code/branches/network/src/util/MultiTypeString.h
===================================================================
--- code/branches/network/src/util/MultiTypeString.h	(revision 915)
+++ code/branches/network/src/util/MultiTypeString.h	(revision 917)
@@ -109,5 +109,5 @@
 };
 
-std::ostream& operator<<(std::ostream& out, MultiTypeString& mts);
+_UtilExport std::ostream& operator<<(std::ostream& out, MultiTypeString& mts);
 
 #endif /* _MultiTypeString_H__ */
Index: code/branches/network/src/util/Sleep.h
===================================================================
--- code/branches/network/src/util/Sleep.h	(revision 915)
+++ code/branches/network/src/util/Sleep.h	(revision 917)
@@ -1,7 +1,43 @@
-// hack for the usleep/Sleep problem
-#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+ @file  Sleep.h
+ @brief Macros for using sleep() and usleep() under windows
+ */
+
+#include "OrxonoxPlatform.h"
+
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
 #  include <windows.h>
-#  define usleep(x) Sleep((x)/1000)
+#  define usleep(x) Sleep((x) / 1000)
+#  define msleep(x) Sleep(x)
+#  define  sleep(x) Sleep((x) * 1000)
 #else
 #  include <unistd.h>
+#  define msleep(x) uleep((x) * 1000)
 #endif
Index: code/branches/network/src/util/XMLIncludes.h
===================================================================
--- code/branches/network/src/util/XMLIncludes.h	(revision 915)
+++ code/branches/network/src/util/XMLIncludes.h	(revision 917)
@@ -1,3 +1,29 @@
-#include "util/tinyxml/TinyXMLPrereqs.h"
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+class TiXmlString;
+class TiXmlOutStream;
+class TiXmlNode;
+class TiXmlHandle;
+class TiXmlDocument;
+class TiXmlElement;
+class TiXmlComment;
+class TiXmlUnknown;
+class TiXmlAttribute;
+class TiXmlText;
+class TiXmlDeclaration;
+class TiXmlParsingData;
+
+namespace ticpp
+{
+    class Document;
+    class Element;
+    class Declaration;
+    class StylesheetReference;
+    class Text;
+    class Comment;
+    class Attribute;
+}
 
 namespace orxonox
Index: code/branches/network/src/util/tinyxml/TinyXMLPrereqs.h
===================================================================
--- code/branches/network/src/util/tinyxml/TinyXMLPrereqs.h	(revision 915)
+++ 	(revision )
@@ -1,86 +1,0 @@
-/*
- *   ORXONOX - the hottest 3D action shooter ever to exist
- *
- *
- *   License notice:
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation; either version 2
- *   of the License, or (at your option) any later version.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- *
- *   Author:
- *      Reto Grieder
- *   Co-authors:
- *      ...
- *
- */
-
-/**
- @file  OrxonoxPrereq.h
- @brief Contains all the necessary forward declarations for all classes, structs and enums.
- */
-
-#ifndef _TinyXMLPrereqs_H__
-#define _TinyXMLPrereqs_H__
-
-#include "orxonox/OrxonoxPlatform.h"
-
-//-----------------------------------------------------------------------
-// Shared library settings
-//-----------------------------------------------------------------------
-#if (ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32) && !defined( TINYXML_STATIC_BUILD )
-#  ifdef TINYXML_SHARED_BUILD
-#    define _TinyXMLExport __declspec(dllexport)
-#  else
-#    if defined( __MINGW32__ )
-#      define _TinyXMLExport
-#    else
-#      define _TinyXMLExport __declspec(dllimport)
-#    endif
-#  endif
-#elif defined ( ORXONOX_GCC_VISIBILITY )
-#  define _TinyXMLExport  __attribute__ ((visibility("default")))
-#else
-#  define _TinyXMLExport
-#endif
-
-
-//-----------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------
-
-class TiXmlString;
-class TiXmlOutStream;
-class TiXmlNode;
-class TiXmlHandle;
-class TiXmlDocument;
-class TiXmlElement;
-class TiXmlComment;
-class TiXmlUnknown;
-class TiXmlAttribute;
-class TiXmlText;
-class TiXmlDeclaration;
-class TiXmlParsingData;
-
-namespace ticpp
-{
-    class Document;
-    class Element;
-    class Declaration;
-    class StylesheetReference;
-    class Text;
-    class Comment;
-    class Attribute;
-}
-
-#endif /* _TinyXMLPrereqs_H__ */
Index: code/branches/network/visual_studio/base_properties.vsprops
===================================================================
--- code/branches/network/visual_studio/base_properties.vsprops	(revision 915)
+++ code/branches/network/visual_studio/base_properties.vsprops	(revision 917)
@@ -11,5 +11,5 @@
 		PreprocessorDefinitions="WIN32;__WIN32__;_WIN32;BOOST_ALL_DYN_LINK"
 		WarningLevel="3"
-		DisableSpecificWarnings="4267; 4244; 4251"
+		DisableSpecificWarnings="4244;4251"
 	/>
 	<Tool
@@ -33,5 +33,5 @@
 	<UserMacro
 		Name="DependencyDir"
-		Value="$(RootDir)dependencies\"
+		Value="D:\orxonox\dependencies\orxonox\"
 	/>
 	<UserMacro
Index: code/branches/network/visual_studio/orxonox_vc8.sln
===================================================================
--- code/branches/network/visual_studio/orxonox_vc8.sln	(revision 915)
+++ code/branches/network/visual_studio/orxonox_vc8.sln	(revision 917)
@@ -18,13 +18,5 @@
 	ProjectSection(ProjectDependencies) = postProject
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loader", "vc8\loader.vcproj", "{E283910F-F911-40FB-A09D-D025CA821912}"
-	ProjectSection(WebsiteProperties) = preProject
-		Debug.AspNetCompiler.Debug = "True"
-		Release.AspNetCompiler.Debug = "False"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F} = {F101C2F0-1CB9-4A57-827B-6C399A99B28F}
 	EndProjectSection
 EndProject
@@ -45,11 +37,12 @@
 	EndProjectSection
 	ProjectSection(ProjectDependencies) = postProject
-		{4733BD1A-E04C-458D-8BFB-5010250EA497} = {4733BD1A-E04C-458D-8BFB-5010250EA497}
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68} = {35575B59-E1AE-40E8-89C4-2862B5B09B68}
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
 		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F} = {F101C2F0-1CB9-4A57-827B-6C399A99B28F}
+		{4733BD1A-E04C-458D-8BFB-5010250EA497} = {4733BD1A-E04C-458D-8BFB-5010250EA497}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_proj", "vc8\test_proj.vcproj", "{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "util", "vc8\util.vcproj", "{2240ECD7-2F48-4431-8E1B-25466A384CCC}"
 	ProjectSection(WebsiteProperties) = preProject
 		Debug.AspNetCompiler.Debug = "True"
@@ -57,5 +50,5 @@
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "util", "vc8\util.vcproj", "{2240ECD7-2F48-4431-8E1B-25466A384CCC}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tixml", "vc8\tixml.vcproj", "{F101C2F0-1CB9-4A57-827B-6C399A99B28F}"
 	ProjectSection(WebsiteProperties) = preProject
 		Debug.AspNetCompiler.Debug = "True"
@@ -87,8 +80,4 @@
 		{271715F3-5B90-4110-A552-70C788084A86}.Release|Win32.ActiveCfg = Release|Win32
 		{271715F3-5B90-4110-A552-70C788084A86}.Release|Win32.Build.0 = Release|Win32
-		{E283910F-F911-40FB-A09D-D025CA821912}.Debug|Win32.ActiveCfg = Debug|Win32
-		{E283910F-F911-40FB-A09D-D025CA821912}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32
-		{E283910F-F911-40FB-A09D-D025CA821912}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32
-		{E283910F-F911-40FB-A09D-D025CA821912}.Release|Win32.ActiveCfg = Release|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.ActiveCfg = Debug|Win32
 		{35575B59-E1AE-40E8-89C4-2862B5B09B68}.Debug|Win32.Build.0 = Debug|Win32
@@ -107,8 +96,4 @@
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Release|Win32.ActiveCfg = Release|Win32
 		{0B6C5CFD-F91B-432A-80A3-2610F61E060B}.Release|Win32.Build.0 = Release|Win32
-		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Debug|Win32.ActiveCfg = Debug|Win32
-		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32
-		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32
-		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Release|Win32.ActiveCfg = Release|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Debug|Win32.ActiveCfg = Debug|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Debug|Win32.Build.0 = Debug|Win32
@@ -119,4 +104,12 @@
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.ActiveCfg = Release|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.Build.0 = Release|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Debug|Win32.Build.0 = Debug|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release_SSE|Win32.ActiveCfg = Release_SSE|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release_SSE|Win32.Build.0 = Release_SSE|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release_SSE2|Win32.ActiveCfg = Release_SSE2|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release_SSE2|Win32.Build.0 = Release_SSE2|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release|Win32.ActiveCfg = Release|Win32
+		{F101C2F0-1CB9-4A57-827B-6C399A99B28F}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: code/branches/network/visual_studio/tixml_properties.vsprops
===================================================================
--- code/branches/network/visual_studio/tixml_properties.vsprops	(revision 917)
+++ code/branches/network/visual_studio/tixml_properties.vsprops	(revision 917)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="util_properties"
+	InheritedPropertySheets=".\directory_properties.vsprops"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		PreprocessorDefinitions="UTIL_SHARED_BUILD"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalDependencies="OgreMain$(CS).lib"
+	/>
+</VisualStudioPropertySheet>
Index: code/branches/network/visual_studio/util_properties.vsprops
===================================================================
--- code/branches/network/visual_studio/util_properties.vsprops	(revision 915)
+++ code/branches/network/visual_studio/util_properties.vsprops	(revision 917)
@@ -6,3 +6,11 @@
 	InheritedPropertySheets=".\directory_properties.vsprops"
 	>
+	<Tool
+		Name="VCCLCompilerTool"
+		PreprocessorDefinitions="UTIL_SHARED_BUILD"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		AdditionalDependencies="OgreMain$(CS).lib"
+	/>
 </VisualStudioPropertySheet>
Index: code/branches/network/visual_studio/vc8/core.vcproj
===================================================================
--- code/branches/network/visual_studio/vc8/core.vcproj	(revision 915)
+++ code/branches/network/visual_studio/vc8/core.vcproj	(revision 917)
@@ -281,4 +281,8 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\ClassTreeMask.cc"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\ConfigValueContainer.cc"
 				>
@@ -293,4 +297,8 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\Executor.cc"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\Factory.cc"
 				>
@@ -301,5 +309,5 @@
 			</File>
 			<File
-				RelativePath="..\..\src\orxonox\core\IdentifierList.cc"
+				RelativePath="..\..\src\orxonox\core\IdentifierDistributor.cc"
 				>
 			</File>
@@ -309,4 +317,8 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\Loader.cc"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\MetaObjectList.cc"
 				>
@@ -322,4 +334,12 @@
 			<File
 				RelativePath="..\..\src\orxonox\core\SignalHandler.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\Tickable.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\XMLPort.cc"
 				>
 			</File>
@@ -343,4 +363,12 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\ClassManager.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\ClassTreeMask.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\ConfigValueContainer.h"
 				>
@@ -367,13 +395,21 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\Executor.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\Factory.h"
 				>
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\Functor.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\Identifier.h"
 				>
 			</File>
 			<File
-				RelativePath="..\..\src\orxonox\core\IdentifierList.h"
+				RelativePath="..\..\src\orxonox\core\IdentifierDistributor.h"
 				>
 			</File>
@@ -387,4 +423,12 @@
 			</File>
 			<File
+				RelativePath="..\..\src\orxonox\core\Level.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\Loader.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\orxonox\core\MetaObjectList.h"
 				>
@@ -404,4 +448,12 @@
 			<File
 				RelativePath="..\..\src\orxonox\core\SignalHandler.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\Tickable.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\orxonox\core\XMLPort.h"
 				>
 			</File>
Index: code/branches/network/visual_studio/vc8/orxonox.vcproj
===================================================================
--- code/branches/network/visual_studio/vc8/orxonox.vcproj	(revision 915)
+++ code/branches/network/visual_studio/vc8/orxonox.vcproj	(revision 917)
@@ -287,4 +287,12 @@
 				RelativePath="..\..\src\orxonox\InputManager.cc"
 				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
 			</File>
 			<File
@@ -627,10 +635,10 @@
 					>
 				</File>
-			</Filter>
-			<Filter
-				Name="loader"
-				>
-				<File
-					RelativePath="..\..\src\loader\LevelLoader.cc"
+				<File
+					RelativePath="..\..\src\orxonox\tools\OrxListener.cc"
+					>
+				</File>
+				<File
+					RelativePath="..\..\src\orxonox\tools\Timer.cc"
 					>
 				</File>
@@ -738,8 +746,4 @@
 				</File>
 				<File
-					RelativePath="..\..\src\orxonox\objects\Tickable.h"
-					>
-				</File>
-				<File
 					RelativePath="..\..\src\orxonox\objects\WorldEntity.h"
 					>
@@ -798,17 +802,9 @@
 				</File>
 				<File
+					RelativePath="..\..\src\orxonox\tools\OrxListener.h"
+					>
+				</File>
+				<File
 					RelativePath="..\..\src\orxonox\tools\Timer.h"
-					>
-				</File>
-			</Filter>
-			<Filter
-				Name="loader"
-				>
-				<File
-					RelativePath="..\..\src\loader\LevelLoader.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\loader\LoaderPrereqs.h"
 					>
 				</File>
Index: code/branches/network/visual_studio/vc8/tixml.vcproj
===================================================================
--- code/branches/network/visual_studio/vc8/tixml.vcproj	(revision 917)
+++ code/branches/network/visual_studio/vc8/tixml.vcproj	(revision 917)
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="tixml"
+	ProjectGUID="{F101C2F0-1CB9-4A57-827B-6C399A99B28F}"
+	RootNamespace="FICN"
+	Keyword="Win32Proj"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(SolutionDir)base_properties_debug.vsprops;..\util_properties.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			ConfigurationType="4"
+			InheritedPropertySheets="$(SolutionDir)base_properties_release.vsprops;..\util_properties.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release_SSE|Win32"
+			ConfigurationType="4"
+			InheritedPropertySheets="..\base_properties_release_sse.vsprops;..\util_properties.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release_SSE2|Win32"
+			ConfigurationType="4"
+			InheritedPropertySheets="..\base_properties_release_sse2.vsprops;..\util_properties.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLibrarianTool"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+			>
+			<File
+				RelativePath="..\..\src\util\tinyxml\ticpp.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinystr.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinyxml.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinyxmlerror.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinyxmlparser.cc"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+			>
+			<File
+				RelativePath="..\..\src\util\tinyxml\ticpp.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\ticpprc.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinystr.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\tinyxml.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\tinyxml\TinyXMLPrereqs.h"
+				>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
Index: code/branches/network/visual_studio/vc8/util.vcproj
===================================================================
--- code/branches/network/visual_studio/vc8/util.vcproj	(revision 915)
+++ code/branches/network/visual_studio/vc8/util.vcproj	(revision 917)
@@ -18,5 +18,5 @@
 		<Configuration
 			Name="Debug|Win32"
-			ConfigurationType="4"
+			ConfigurationType="2"
 			InheritedPropertySheets="$(SolutionDir)base_properties_debug.vsprops;..\util_properties.vsprops"
 			CharacterSet="1"
@@ -50,5 +50,5 @@
 			/>
 			<Tool
-				Name="VCLibrarianTool"
+				Name="VCLinkerTool"
 			/>
 			<Tool
@@ -56,4 +56,7 @@
 			/>
 			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
 				Name="VCXDCMakeTool"
 			/>
@@ -63,4 +66,10 @@
 			<Tool
 				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
 			/>
 			<Tool
@@ -70,5 +79,5 @@
 		<Configuration
 			Name="Release|Win32"
-			ConfigurationType="4"
+			ConfigurationType="2"
 			InheritedPropertySheets="$(SolutionDir)base_properties_release.vsprops;..\util_properties.vsprops"
 			CharacterSet="1"
@@ -103,5 +112,5 @@
 			/>
 			<Tool
-				Name="VCLibrarianTool"
+				Name="VCLinkerTool"
 			/>
 			<Tool
@@ -109,4 +118,7 @@
 			/>
 			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
 				Name="VCXDCMakeTool"
 			/>
@@ -116,4 +128,10 @@
 			<Tool
 				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
 			/>
 			<Tool
@@ -123,5 +141,5 @@
 		<Configuration
 			Name="Release_SSE|Win32"
-			ConfigurationType="4"
+			ConfigurationType="2"
 			InheritedPropertySheets="..\base_properties_release_sse.vsprops;..\util_properties.vsprops"
 			CharacterSet="1"
@@ -156,5 +174,5 @@
 			/>
 			<Tool
-				Name="VCLibrarianTool"
+				Name="VCLinkerTool"
 			/>
 			<Tool
@@ -162,4 +180,7 @@
 			/>
 			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
 				Name="VCXDCMakeTool"
 			/>
@@ -169,4 +190,10 @@
 			<Tool
 				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
 			/>
 			<Tool
@@ -176,5 +203,5 @@
 		<Configuration
 			Name="Release_SSE2|Win32"
-			ConfigurationType="4"
+			ConfigurationType="2"
 			InheritedPropertySheets="..\base_properties_release_sse2.vsprops;..\util_properties.vsprops"
 			CharacterSet="1"
@@ -209,5 +236,5 @@
 			/>
 			<Tool
-				Name="VCLibrarianTool"
+				Name="VCLinkerTool"
 			/>
 			<Tool
@@ -215,4 +242,7 @@
 			/>
 			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
 				Name="VCXDCMakeTool"
 			/>
@@ -222,4 +252,10 @@
 			<Tool
 				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCWebDeploymentTool"
 			/>
 			<Tool
@@ -237,31 +273,27 @@
 			>
 			<File
+				RelativePath="..\..\src\util\Math.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypeMath.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypePrimitive.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypeString.cc"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\String.cc"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\util\substring.cc"
 				>
 			</File>
-			<Filter
-				Name="tinyxml"
-				>
-				<File
-					RelativePath="..\..\src\util\tinyxml\ticpp.cc"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinystr.cc"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinyxml.cc"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinyxmlerror.cc"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinyxmlparser.cc"
-					>
-				</File>
-			</Filter>
 		</Filter>
 		<Filter
@@ -279,8 +311,28 @@
 			</File>
 			<File
+				RelativePath="..\..\src\util\MultiType.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypeMath.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypePrimitive.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\MultiTypeString.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\util\Sleep.h"
 				>
 			</File>
 			<File
+				RelativePath="..\..\src\util\String.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\util\String2Number.h"
 				>
@@ -294,28 +346,12 @@
 				>
 			</File>
-			<Filter
-				Name="tinyxml"
-				>
-				<File
-					RelativePath="..\..\src\util\tinyxml\ticpp.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\ticpprc.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinystr.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\tinyxml.h"
-					>
-				</File>
-				<File
-					RelativePath="..\..\src\util\tinyxml\TinyXMLPrereqs.h"
-					>
-				</File>
-			</Filter>
+			<File
+				RelativePath="..\..\src\util\UtilPrereqs.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\src\util\XMLIncludes.h"
+				>
+			</File>
 		</Filter>
 	</Files>
