Index: code/branches/FICN/src/audio/AudioBuffer.cc
===================================================================
--- code/branches/FICN/src/audio/AudioBuffer.cc	(revision 707)
+++ code/branches/FICN/src/audio/AudioBuffer.cc	(revision 708)
@@ -30,5 +30,5 @@
 namespace audio
 {
-	AudioBuffer::AudioBuffer(std::string fileName)
+	AudioBuffer::AudioBuffer(orxonox::String fileName)
 	{
 		// Load wav data into buffers.
Index: code/branches/FICN/src/audio/AudioBuffer.h
===================================================================
--- code/branches/FICN/src/audio/AudioBuffer.h	(revision 707)
+++ code/branches/FICN/src/audio/AudioBuffer.h	(revision 708)
@@ -9,5 +9,5 @@
 	{
 	public:
-		AudioBuffer(std::string fileName);
+		AudioBuffer(orxonox::String fileName);
 		~AudioBuffer();
 	private:
@@ -15,5 +15,5 @@
 		ALuint buffer;
 		// Identifier
-		std::string name;
+		orxonox::String name;
 		// True if AL was able to load data
 		ALboolean loaded;
Index: code/branches/FICN/src/audio/AudioIncludes.h
===================================================================
--- code/branches/FICN/src/audio/AudioIncludes.h	(revision 707)
+++ code/branches/FICN/src/audio/AudioIncludes.h	(revision 708)
@@ -1,4 +1,3 @@
 #include <iostream>
-#include <string>
 #include <vector>
 
@@ -11,3 +10,4 @@
 #include <vorbis/vorbisfile.h>
 
-#include "../orxonox/core/Error.h"
+#include "orxonox/core/Error.h"
+#include "misc/String.h"
Index: code/branches/FICN/src/audio/AudioManager.cc
===================================================================
--- code/branches/FICN/src/audio/AudioManager.cc	(revision 707)
+++ code/branches/FICN/src/audio/AudioManager.cc	(revision 708)
@@ -27,5 +27,5 @@
 
 #include "AudioManager.h"
-#include "../orxonox/core/Debug.h"
+#include "orxonox/core/Debug.h"
 
 namespace audio
@@ -72,7 +72,7 @@
 	}
 
-	void AudioManager::ambientAdd(std::string file)
+	void AudioManager::ambientAdd(orxonox::String file)
 	{
-    std::string path = ambientPath + "/" + file + ".ogg";
+    orxonox::String path = ambientPath + "/" + file + ".ogg";
 		AudioStream tmp(path);
 		tmp.open();
Index: code/branches/FICN/src/audio/AudioManager.h
===================================================================
--- code/branches/FICN/src/audio/AudioManager.h	(revision 707)
+++ code/branches/FICN/src/audio/AudioManager.h	(revision 708)
@@ -37,5 +37,5 @@
 		void update();
 
-		void ambientAdd(std::string file);
+		void ambientAdd(orxonox::String file);
 		void ambientStart();
 		void ambientStop();
@@ -49,5 +49,5 @@
 
 
-		std::string ambientPath;
+		orxonox::String ambientPath;
 	
 		// Vector containing all audio files
Index: code/branches/FICN/src/audio/AudioStream.cc
===================================================================
--- code/branches/FICN/src/audio/AudioStream.cc	(revision 707)
+++ code/branches/FICN/src/audio/AudioStream.cc	(revision 708)
@@ -28,9 +28,9 @@
 
 #include "AudioStream.h"
-#include "../orxonox/core/Debug.h"
+#include "orxonox/core/Debug.h"
 
 namespace audio
 {
-	AudioStream::AudioStream(std::string path)
+	AudioStream::AudioStream(orxonox::String path)
 	{
 		this->path = path;
@@ -40,19 +40,24 @@
 	void AudioStream::open()
 	{
-	    int result;
-
-
-	    if(!(oggFile = fopen(path.c_str(), "rb")))
+	    //int result;
+      errno_t result;
+
+
+	    if(fopen_s(&oggFile, path.c_str(), "rb"))
 			{
 	    	orxonox::Error("Could not open Ogg file "+path);
 				return;
 			}
-
-	    if((result = ov_open(oggFile, &oggStream, NULL, 0)) < 0)
+      else
+      {
+        COUT(4) << "Opened Ogg file" << path << std::endl;
+      }
+
+	    /*if((result = ov_open(oggFile, &oggStream, NULL, 0)) < 0)
 	    {
         fclose(oggFile);
 	      orxonox::Error("Could not open Ogg stream. " + errorString(result));
 				return;
-	    }
+	    }*/
 
 			loaded = true;
@@ -254,20 +259,20 @@
 
 
-	std::string AudioStream::errorString(int code)
+	orxonox::String AudioStream::errorString(int code)
 	{
 	    switch(code)
 	    {
 	        case OV_EREAD:
-	            return std::string("Read from media.");
+	            return orxonox::String("Read from media.");
 	        case OV_ENOTVORBIS:
-	            return std::string("Not Vorbis data.");
+	            return orxonox::String("Not Vorbis data.");
 	        case OV_EVERSION:
-	            return std::string("Vorbis version mismatch.");
+	            return orxonox::String("Vorbis version mismatch.");
 	        case OV_EBADHEADER:
-	            return std::string("Invalid Vorbis header.");
+	            return orxonox::String("Invalid Vorbis header.");
 	        case OV_EFAULT:
-	            return std::string("Internal logic fault (bug or heap/stack corruption.");
+	            return orxonox::String("Internal logic fault (bug or heap/stack corruption.");
 	        default:
-	            return std::string("Unknown Ogg error.");
+	            return orxonox::String("Unknown Ogg error.");
 	    }
 	}
Index: code/branches/FICN/src/audio/AudioStream.h
===================================================================
--- code/branches/FICN/src/audio/AudioStream.h	(revision 707)
+++ code/branches/FICN/src/audio/AudioStream.h	(revision 708)
@@ -11,5 +11,5 @@
   {
     public:
-      AudioStream(std::string path);
+      AudioStream(orxonox::String path);
       void open();
       void release();
@@ -24,8 +24,8 @@
       void empty();
       void check();
-      std::string errorString(int code);
+      orxonox::String errorString(int code);
 
     private:
-      std::string path;
+      orxonox::String path;
 
       FILE*           oggFile;
Index: code/branches/FICN/src/loader/LevelLoader.cc
===================================================================
--- code/branches/FICN/src/loader/LevelLoader.cc	(revision 707)
+++ code/branches/FICN/src/loader/LevelLoader.cc	(revision 708)
@@ -42,5 +42,5 @@
 {
 
-  LevelLoader::LevelLoader(std::string file, std::string path)
+  LevelLoader::LevelLoader(orxonox::String file, orxonox::String path)
   {
     valid_ = false;
@@ -155,5 +155,5 @@
 
               tElem = tNode->ToElement();
-              std::string elemVal = tElem->Value();
+              orxonox::String elemVal = tElem->Value();
               if (elemVal == "ogg")
               {
Index: code/branches/FICN/src/loader/LevelLoader.h
===================================================================
--- code/branches/FICN/src/loader/LevelLoader.h	(revision 707)
+++ code/branches/FICN/src/loader/LevelLoader.h	(revision 708)
@@ -9,7 +9,7 @@
 #define _LevelLoader_H__
 
-#include <string>
+#include "LoaderPrereqs.h"
 
-#include "LoaderPrereqs.h"
+#include "misc/String.h"
 #include "tinyxml/tinyxml.h"
 
@@ -23,5 +23,5 @@
   public:
     // Constructors, loads the level file and some information data
-    LevelLoader(std::string file, std::string dir = "levels");
+    LevelLoader(orxonox::String file, orxonox::String dir = "levels");
     // Destructor
     virtual ~LevelLoader();
@@ -30,19 +30,19 @@
 
     // Getters
-    inline std::string name() {return name_; };
-    inline std::string description() {return description_; };
-    inline std::string image() {return image_; };
+    inline orxonox::String name() {return name_; };
+    inline orxonox::String description() {return description_; };
+    inline orxonox::String image() {return image_; };
   private:
     //! Level information
-    std::string name_;
-    std::string description_;
-    std::string image_;
-    std::string loadingBackgroundColor_;
-    std::string loadingBackgroundImage_;
-    std::string loadingBarImage_;
-    std::string loadingBarTop_;
-    std::string loadingBarLeft_;
-    std::string loadingBarWidth_;
-    std::string loadingBarHeight_;
+    orxonox::String name_;
+    orxonox::String description_;
+    orxonox::String image_;
+    orxonox::String loadingBackgroundColor_;
+    orxonox::String loadingBackgroundImage_;
+    orxonox::String loadingBarImage_;
+    orxonox::String loadingBarTop_;
+    orxonox::String loadingBarLeft_;
+    orxonox::String loadingBarWidth_;
+    orxonox::String loadingBarHeight_;
 
     //! Set to true if it was possible to load the level file
Index: code/branches/FICN/src/misc/ColourValue.h
===================================================================
--- code/branches/FICN/src/misc/ColourValue.h	(revision 708)
+++ code/branches/FICN/src/misc/ColourValue.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreColourValue.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::ColourValue ColourValue;
+}
Index: code/branches/FICN/src/misc/Math.h
===================================================================
--- code/branches/FICN/src/misc/Math.h	(revision 708)
+++ code/branches/FICN/src/misc/Math.h	(revision 708)
@@ -0,0 +1,7 @@
+#include <OgreMath.h>
+
+namespace orxonox
+{
+  typedef Ogre::Radian Radian;
+  typedef Ogre::Degree Degree;
+}
Index: code/branches/FICN/src/misc/Matrix3.h
===================================================================
--- code/branches/FICN/src/misc/Matrix3.h	(revision 708)
+++ code/branches/FICN/src/misc/Matrix3.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreMatrix3.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::Matrix3 Matrix3;
+}
Index: code/branches/FICN/src/misc/Quaternion.h
===================================================================
--- code/branches/FICN/src/misc/Quaternion.h	(revision 708)
+++ code/branches/FICN/src/misc/Quaternion.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreQuaternion.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::Quaternion Quaternion;
+}
Index: code/branches/FICN/src/misc/Sleep.h
===================================================================
--- code/branches/FICN/src/misc/Sleep.h	(revision 708)
+++ code/branches/FICN/src/misc/Sleep.h	(revision 708)
@@ -0,0 +1,7 @@
+// hack for the usleep/Sleep problem
+#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
+#  include <windows.h>
+#  define usleep(x) Sleep((x)/1000)
+#elif ORXONOX_PLATFORM == ORXONOX_PLATFORM_LINUX
+#  include <unistd.h>
+#endif
Index: code/branches/FICN/src/misc/String.h
===================================================================
--- code/branches/FICN/src/misc/String.h	(revision 708)
+++ code/branches/FICN/src/misc/String.h	(revision 708)
@@ -0,0 +1,6 @@
+#include <string>
+
+namespace orxonox
+{
+  typedef std::string String;
+}
Index: code/branches/FICN/src/misc/String2Number.h
===================================================================
--- code/branches/FICN/src/misc/String2Number.h	(revision 707)
+++ code/branches/FICN/src/misc/String2Number.h	(revision 708)
@@ -6,5 +6,5 @@
 #include <iostream>
 
-#include "../orxonox/core/Debug.h"
+#include "orxonox/core/Debug.h"
 
 /**
Index: code/branches/FICN/src/misc/Vector2.h
===================================================================
--- code/branches/FICN/src/misc/Vector2.h	(revision 708)
+++ code/branches/FICN/src/misc/Vector2.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreVector2.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::Vector2 Vector2;
+}
Index: code/branches/FICN/src/misc/Vector3.h
===================================================================
--- code/branches/FICN/src/misc/Vector3.h	(revision 708)
+++ code/branches/FICN/src/misc/Vector3.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreVector3.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::Vector3 Vector3;
+}
Index: code/branches/FICN/src/misc/Vector4.h
===================================================================
--- code/branches/FICN/src/misc/Vector4.h	(revision 708)
+++ code/branches/FICN/src/misc/Vector4.h	(revision 708)
@@ -0,0 +1,8 @@
+#include <OgreVector4.h>
+
+#include "Math.h"
+
+namespace orxonox
+{
+  typedef Ogre::Vector4 Vector4;
+}
Index: code/branches/FICN/src/network/ClientConnection.cc
===================================================================
--- code/branches/FICN/src/network/ClientConnection.cc	(revision 707)
+++ code/branches/FICN/src/network/ClientConnection.cc	(revision 708)
@@ -39,10 +39,5 @@
 #include "ClientConnection.h"
 
-#ifdef WIN32
-#include <windows.h>
-#define usleep(x) Sleep((x)/1000)
-#else
-#include <unistd.h>
-#endif
+#include "misc/Sleep.h"
 
 namespace network{
Index: code/branches/FICN/src/network/NetworkFrameListener.h
===================================================================
--- code/branches/FICN/src/network/NetworkFrameListener.h	(revision 707)
+++ code/branches/FICN/src/network/NetworkFrameListener.h	(revision 708)
@@ -14,5 +14,6 @@
 #define _NetworkFrameListener_H__
 
-#include "OgreFrameListener.h"
+#include <OgreFrameListener.h>
+
 #include "Server.h"
 #include "Client.h"
Index: code/branches/FICN/src/orxonox/AIClass.h
===================================================================
--- code/branches/FICN/src/orxonox/AIClass.h	(revision 707)
+++ code/branches/FICN/src/orxonox/AIClass.h	(revision 708)
@@ -2,19 +2,14 @@
 #define _AIClass_H__
 
-#include <Ogre.h>
-#include <OgreVector3.h>
-#include <OgreMath.h>
+#include "misc/Vector3.h"
 
-#include <iostream>
-
-// FIXME: using namespace xy; in header files is a very bad idea..
-using namespace std;
-using namespace Ogre;
-
-class AIPilot {
+namespace orxonox
+{
+  class AIPilot
+  {
 
 
-  /*
-  TASKS:                                                                         Requirements:
+    /*
+    TASKS:                                                                         Requirements:
 
     - Change actual Speed to required Speed                                          - Speed as Vector3 , spaceship(?) -> pilot attached to it or vice versa (?)
@@ -25,5 +20,5 @@
 
 
-  */
+    */
 
   public:
@@ -32,26 +27,25 @@
 
 
-  //default constructor
-  AIPilot() {
-     speed = (1,0,0);
-  }
+    //default constructor
+    AIPilot() {
+      speed = (1,0,0);
+    }
 
-  Vector3 steer(Vector3 reqSpeed) {
-    Quaternion sRotation = speed.getRotationTo(reqSpeed);
-    Radian rollarc = sRotation.getRoll();
-    Radian pitcharc = sRotation.getPitch();
-    Radian yawarc = sRotation.getYaw();
-    return Vector3((float)rollarc.valueRadians(), (float)pitcharc.valueRadians(), (float)yawarc.valueRadians());
-  }
+    Vector3 steer(Vector3 reqSpeed) {
+      Quaternion sRotation = speed.getRotationTo(reqSpeed);
+      Radian rollarc = sRotation.getRoll();
+      Radian pitcharc = sRotation.getPitch();
+      Radian yawarc = sRotation.getYaw();
+      return Vector3((float)rollarc.valueRadians(), (float)pitcharc.valueRadians(), (float)yawarc.valueRadians());
+    }
 
 
+  };
 
-};
-
-class AIFleetCommander : public  AIPilot {
+  class AIFleetCommander : public  AIPilot {
 
 
-  /*
-  TASKS:                                                                       Requirements:
+    /*
+    TASKS:                                                                       Requirements:
 
     - Same tasks as AI_Pilot (only if shipcontrol)                                   - Same as AI_Pilot
@@ -61,23 +55,24 @@
 
 
-  */
+    */
 
   public:
 
 
-  //default constructor
-  AIFleetCommander() {
+    //default constructor
+    AIFleetCommander() {
 
-  }
+    }
 
 
 
-};
+  };
 
-class AICommander : public  AIFleetCommander {
+  class AICommander : public  AIFleetCommander
+  {
 
 
-  /*
-  TASKS:                                                                     Requirements:
+    /*
+    TASKS:                                                                     Requirements:
 
     - Decide on general tactics                                                      - List of general fleet status + all possible information on enemies
@@ -86,14 +81,15 @@
 
 
-  */
+    */
 
-  //default constructor
-  AICommander() {
+    //default constructor
+    AICommander() {
 
-  }
+    }
 
 
+  };
 
-};
+}
 
 #endif /* _AIClass_H__ */
Index: code/branches/FICN/src/orxonox/Arrival.h
===================================================================
--- code/branches/FICN/src/orxonox/Arrival.h	(revision 707)
+++ code/branches/FICN/src/orxonox/Arrival.h	(revision 708)
@@ -6,16 +6,11 @@
 #define _Arrival_H__
 
-// #include <Ogre.h>
-#include <OgreVector3.h>
+#include "misc/Vector3.h"
+#include "misc/Quaternion.h"
 
-
-#include <iostream>
-
-// FIXME: using namspace xy; in header files is a bad idea
-using namespace std;
-using namespace Ogre;
-
-class Arrival {
-
+namespace orxonox
+{
+  class Arrival
+  {
   public:
     Vector3 location;           //!< locationvector of the element
@@ -27,61 +22,61 @@
 
 
-  Arrival() {
-    acceleration = (0,0,0);
-    speed = (0,0,0);
-    location = (0,0,0);
-    target = (0,0,0);
-  }
+    Arrival() {
+      acceleration = (0,0,0);
+      speed = (0,0,0);
+      location = (0,0,0);
+      target = (0,0,0);
+    }
 
-  Arrival(Vector3 location_, Vector3 speed_, Vector3 acceleration_, Vector3 target_) {
-    acceleration = acceleration_;
-    speed = speed_;
-    location = location_;
-    target = target_;
-  }
+    Arrival(Vector3 location_, Vector3 speed_, Vector3 acceleration_, Vector3 target_) {
+      acceleration = acceleration_;
+      speed = speed_;
+      location = location_;
+      target = target_;
+    }
 
-  void setValues(Vector3 location_, Vector3 speed_, Vector3 acceleration_, Vector3 target_) {
-    acceleration = acceleration_;
-    speed = speed_;
-    location = location_;
-    target = target_;
-  }
+    void setValues(Vector3 location_, Vector3 speed_, Vector3 acceleration_, Vector3 target_) {
+      acceleration = acceleration_;
+      speed = speed_;
+      location = location_;
+      target = target_;
+    }
 
-  void setTarget(Vector3 target_) {
-    setValues(this.location, this.speed, this.acceleration, target_);
-  }
+    void setTarget(Vector3 target_) {
+      setValues(this->location, this->speed, this->acceleration, target_);
+    }
 
-  Vector3 getDirection() {
-    Vector3 direction = target-location;
-  }
+    Vector3 getDirection() {
+      Vector3 direction = target-location;
+    }
 
-  double relativeDirectApproach() {
-    // Maxspeed / accelerationForwards = time needed to break with max acceleration
-    // 2*getDistance()length/(MaxSpeed/accelerationForwards)^2 = required acceleration to arrive at the target with speed = 0
-    return (accelerationForwards / (2*getDirection().length / (MaxSpeed/accelerationForwards)^2) );
-  }
+    double relativeDirectApproach() {
+      // Maxspeed / accelerationForwards = time needed to break with max acceleration
+      // 2*getDistance()length/(MaxSpeed/accelerationForwards)^2 = required acceleration to arrive at the target with speed = 0
+      return (accelerationForwards / (2*getDirection().length() / ((MaxSpeed/accelerationForwards)*(MaxSpeed/accelerationForwards))) );
+    }
 
-  void Approach() {
-    Quaternion rotation = (0,0,0,0);
-    if (relativeDirectApproach() > 1) {
-      float length = speed.length();
-      speed = (speed+getDirection());
-      speed.normalise();
-      speed = speed*length;
-      if (relativeDirectApproach > 4) {
-        //accelerate
+    void Approach() {
+      Quaternion rotation = Quaternion(0,0,0,0);
+      if (relativeDirectApproach() > 1)
+      {
+        float length = speed.length();
+        speed = (speed+getDirection());
+        speed.normalise();
+        speed = speed*length;
+        if (relativeDirectApproach() > 4)
+        {
+          //accelerate
+        }
+        else
+        {
+          // speed will stay constant
+        }
       }
       else {
-        // speed will stay constant
       }
-
-
-    }
-    else {
-
-
     }
 
-  }
+  };
 }
 
Index: code/branches/FICN/src/orxonox/Flocking.h
===================================================================
--- code/branches/FICN/src/orxonox/Flocking.h	(revision 707)
+++ code/branches/FICN/src/orxonox/Flocking.h	(revision 708)
@@ -5,19 +5,15 @@
 #define _Flocking_H__
 
-// #include <Ogre.h>
-#include <OgreVector3.h>
+#include "misc/Vector3.h"
 
-
-#include <iostream>
-
-
-
-class Element // An element that flocks
+namespace orxonox
 {
+  class Element // An element that flocks
+  {
 
   public:
-    Ogre::Vector3 location;                       //!< locationvector of the element
-    Ogre::Vector3 speed;                          //!< speedvector of the element
-    Ogre::Vector3 acceleration;                   //!< accelerationvector of the element
+    Vector3 location;                       //!< locationvector of the element
+    Vector3 speed;                          //!< speedvector of the element
+    Vector3 acceleration;                   //!< accelerationvector of the element
     bool movable;                                 //!< movability of the element, (false) gives the possiblity that an object can`t be moved by flocking but still gets into the calculation
     static int const SEPERATIONDISTANCE = 300;    //!< detectionradius of seperation
@@ -26,118 +22,119 @@
     static int const ANZELEMENTS = 9;             //!< number of elements
 
-  //! default constructor
-  Element() {
-    acceleration = Ogre::Vector3(0,0,0);
-    speed = Ogre::Vector3(0,0,0);
-    location = Ogre::Vector3(0,0,0);
-    movable = true;
-  }
+    //! default constructor
+    Element() {
+      acceleration = Vector3(0,0,0);
+      speed = Vector3(0,0,0);
+      location = Vector3(0,0,0);
+      movable = true;
+    }
 
-  /** constructor
-   *  @param location_ sets locationvector of the element
-   *  @param speed_ sets speedvector of the element
-   *  @param acceleration_ sets accelerationvector of the element
-   *  @param movable_ sets movability of the element
-   */
-  Element(Ogre::Vector3 location_, Ogre::Vector3 speed_, Ogre::Vector3 acceleration_, bool movable_) {
-    acceleration = acceleration_;
-    speed = speed_;
-    location = location_;
-    movable = movable_;
-  }
+    /** constructor
+    *  @param location_ sets locationvector of the element
+    *  @param speed_ sets speedvector of the element
+    *  @param acceleration_ sets accelerationvector of the element
+    *  @param movable_ sets movability of the element
+    */
+    Element(Vector3 location_, Vector3 speed_, Vector3 acceleration_, bool movable_) {
+      acceleration = acceleration_;
+      speed = speed_;
+      location = location_;
+      movable = movable_;
+    }
 
-  //! function to chance values of an element
-  void setValues(Ogre::Vector3 location_, Ogre::Vector3 speed_, Ogre::Vector3 acceleration_, bool movable_) {
-    acceleration = acceleration_;
-    speed = speed_;
-    location = location_;
-    movable = movable_;
-  }
+    //! function to chance values of an element
+    void setValues(Vector3 location_, Vector3 speed_, Vector3 acceleration_, bool movable_) {
+      acceleration = acceleration_;
+      speed = speed_;
+      location = location_;
+      movable = movable_;
+    }
 
-  /** calculates the distance between the element and an other point given by temp
-   * @param e remote object to calculate distance to
-   */
-  float getDistance(Element e) {
-    Ogre::Vector3 distance = e.location - location;
-    return distance.length();
-  }
+    /** calculates the distance between the element and an other point given by temp
+    * @param e remote object to calculate distance to
+    */
+    float getDistance(Element e) {
+      Vector3 distance = e.location - location;
+      return distance.length();
+    }
 
-  //! updates the data of an element
-  void update(Element arrayOfElements[]) {
-    if (this->movable == true) {calculateAcceleration(arrayOfElements);} //if element is movable, calculate acceleration
-  }
+    //! updates the data of an element
+    void update(Element arrayOfElements[]) {
+      if (this->movable == true) {calculateAcceleration(arrayOfElements);} //if element is movable, calculate acceleration
+    }
 
-  //! calculates the new acceleration of an element
-  void calculateAcceleration(Element arrayOfElements[]) {
-    acceleration = separation(arrayOfElements) + alignment(arrayOfElements) + cohesion(arrayOfElements);  //acceleration consisting of flocking-functions
-  }
+    //! calculates the new acceleration of an element
+    void calculateAcceleration(Element arrayOfElements[]) {
+      acceleration = separation(arrayOfElements) + alignment(arrayOfElements) + cohesion(arrayOfElements);  //acceleration consisting of flocking-functions
+    }
 
-  //! separation-function (keep elements separated, avoid crashs)
-  Ogre::Vector3 separation(Element arrayOfElements[]) {
-    using namespace Ogre;
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    Vector3 inverseDistance = Vector3(0,0,0);  //vector pointing away from possible collisions
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    float distance = 0;  // distance to the actual element
-    for(int i=0; i<ANZELEMENTS; i++) {  //go through all elements
-      Element actual = arrayOfElements[i];  //get the actual element
-      distance = getDistance(actual);  //get distance between this and actual
-      if ((distance > 0) && (distance < SEPERATIONDISTANCE)) {  //do only if actual is inside detectionradius
-        inverseDistance = (0,0,0);
-        inverseDistance = location-actual.location;  //calculate the distancevector heading towards this
-        //adaptation of the inverseDistance to the distance
-        if ((distance < 200) && (distance >= 120)) {inverseDistance = 2*inverseDistance;}
-        if ((distance < 120) && (distance >= 80)) {inverseDistance = 5*inverseDistance;}
-        if ((distance < 80) && (distance >= 40)) {inverseDistance = 10*inverseDistance;}
-        if ((distance < 40) && (distance > 0)) {inverseDistance = 10*inverseDistance;}
-        steering = steering + inverseDistance;  //add up all significant steeringvectors
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
+    //! separation-function (keep elements separated, avoid crashs)
+    Vector3 separation(Element arrayOfElements[]) {
+      using namespace Ogre;
+      Vector3 steering = Vector3(0,0,0); //steeringvector
+      Vector3 inverseDistance = Vector3(0,0,0);  //vector pointing away from possible collisions
+      int numberOfNeighbour = 0;  //number of observed neighbours
+      float distance = 0;  // distance to the actual element
+      for(int i=0; i<ANZELEMENTS; i++) {  //go through all elements
+        Element actual = arrayOfElements[i];  //get the actual element
+        distance = getDistance(actual);  //get distance between this and actual
+        if ((distance > 0) && (distance < SEPERATIONDISTANCE)) {  //do only if actual is inside detectionradius
+          inverseDistance = (0,0,0);
+          inverseDistance = location-actual.location;  //calculate the distancevector heading towards this
+          //adaptation of the inverseDistance to the distance
+          if ((distance < 200) && (distance >= 120)) {inverseDistance = 2*inverseDistance;}
+          if ((distance < 120) && (distance >= 80)) {inverseDistance = 5*inverseDistance;}
+          if ((distance < 80) && (distance >= 40)) {inverseDistance = 10*inverseDistance;}
+          if ((distance < 40) && (distance > 0)) {inverseDistance = 10*inverseDistance;}
+          steering = steering + inverseDistance;  //add up all significant steeringvectors
+          numberOfNeighbour++;  //counts the elements inside the detectionradius
+        }
       }
+      if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> separation steeringvector
+      return steering;
     }
-    if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> separation steeringvector
-    return steering;
-  }
 
-  //! alignment-function (lead elements to the same heading)
-  Ogre::Vector3 alignment(Element arrayOfElements[]) {
-    using namespace Ogre;
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    float distance = 0;
-    //go through all elements
-    for(int i=0; i<ANZELEMENTS; i++) {  //just working with 3 elements at the moment
-      Element actual = arrayOfElements[i];  //get the actual element
-      float distance = getDistance(actual);  //get distance between this and actual
-      if ((distance > 0) && (distance < ALIGNMENTDISTANCE)) {  //check if actual element is inside detectionradius
-        steering = steering + actual.speed;  //add up all speedvectors inside the detectionradius
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
+    //! alignment-function (lead elements to the same heading)
+    Vector3 alignment(Element arrayOfElements[]) {
+      using namespace Ogre;
+      Vector3 steering = Vector3(0,0,0); //steeringvector
+      int numberOfNeighbour = 0;  //number of observed neighbours
+      float distance = 0;
+      //go through all elements
+      for(int i=0; i<ANZELEMENTS; i++) {  //just working with 3 elements at the moment
+        Element actual = arrayOfElements[i];  //get the actual element
+        float distance = getDistance(actual);  //get distance between this and actual
+        if ((distance > 0) && (distance < ALIGNMENTDISTANCE)) {  //check if actual element is inside detectionradius
+          steering = steering + actual.speed;  //add up all speedvectors inside the detectionradius
+          numberOfNeighbour++;  //counts the elements inside the detectionradius
+        }
       }
+      if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> alignment steeringvector
+      return steering;
     }
-    if(numberOfNeighbour > 0) { steering = steering / (float)numberOfNeighbour; }  //devide the sum of steeringvectors by the number of elements -> alignment steeringvector
-    return steering;
-  }
 
-  //! cohseion-function (keep elements close to each other)
-  Ogre::Vector3 cohesion(Element arrayOfElements[]) {
-    using namespace Ogre;
-    Vector3 steering = Vector3(0,0,0); //steeringvector
-    int numberOfNeighbour = 0;  //number of observed neighbours
-    float distance = 0;
-    //go through all elements
-    for(int i=0; i<ANZELEMENTS; i++) {  //just working with 3 elements at the moment
-      Element actual = arrayOfElements[i];  //get the actual element
-      float distance = getDistance(actual);  //get distance between this and actual
-      if ((distance > 0) && (distance < COHESIONDISTANCE)) {  //check if actual element is inside detectionradius
-        steering = steering + actual.location;  //add up all locations of elements inside the detectionradius
-        numberOfNeighbour++;  //counts the elements inside the detectionradius
+    //! cohseion-function (keep elements close to each other)
+    Vector3 cohesion(Element arrayOfElements[]) {
+      using namespace Ogre;
+      Vector3 steering = Vector3(0,0,0); //steeringvector
+      int numberOfNeighbour = 0;  //number of observed neighbours
+      float distance = 0;
+      //go through all elements
+      for(int i=0; i<ANZELEMENTS; i++) {  //just working with 3 elements at the moment
+        Element actual = arrayOfElements[i];  //get the actual element
+        float distance = getDistance(actual);  //get distance between this and actual
+        if ((distance > 0) && (distance < COHESIONDISTANCE)) {  //check if actual element is inside detectionradius
+          steering = steering + actual.location;  //add up all locations of elements inside the detectionradius
+          numberOfNeighbour++;  //counts the elements inside the detectionradius
+        }
       }
+      if(numberOfNeighbour > 0) {
+        steering = steering  / (float)numberOfNeighbour;  //devide the sum steeringvector by the number of elements -> cohesion steeringvector
+        steering = steering - this->location;  //transform the vector for the ship
+      }
+      return steering;
     }
-    if(numberOfNeighbour > 0) {
-      steering = steering  / (float)numberOfNeighbour;  //devide the sum steeringvector by the number of elements -> cohesion steeringvector
-      steering = steering - this->location;  //transform the vector for the ship
-    }
-    return steering;
-  }
-};     //End of class Element
+  };     //End of class Element
+}
 
 #endif /* _Flocking_H__*/
Index: code/branches/FICN/src/orxonox/GraphicsEngine.cc
===================================================================
--- code/branches/FICN/src/orxonox/GraphicsEngine.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/GraphicsEngine.cc	(revision 708)
@@ -65,7 +65,7 @@
 #endif*/
 #if defined(_DEBUG) && defined(WIN32)
-    std::string plugin_filename = "plugins_d.cfg";
+    String plugin_filename = "plugins_d.cfg";
 #else
-    std::string plugin_filename = "plugins.cfg";
+    String plugin_filename = "plugins.cfg";
 #endif
     root_ = new Root(plugin_filename);
@@ -100,5 +100,5 @@
   }
 
-  void GraphicsEngine::loadRessourceLocations(std::string dataPath)
+  void GraphicsEngine::loadRessourceLocations(String dataPath)
   {
     //TODO: Specify layout of data file and maybe use xml-loader
Index: code/branches/FICN/src/orxonox/GraphicsEngine.h
===================================================================
--- code/branches/FICN/src/orxonox/GraphicsEngine.h	(revision 707)
+++ code/branches/FICN/src/orxonox/GraphicsEngine.h	(revision 708)
@@ -11,4 +11,6 @@
 #include <OgreSceneManager.h>
 
+#include "misc/String.h"
+
 
 namespace orxonox {
@@ -20,10 +22,10 @@
     public:
       GraphicsEngine();
-      inline void setConfigPath(std::string path) { this->configPath_ = path; };
+      inline void setConfigPath(String path) { this->configPath_ = path; };
       // find a better way for this
       inline Ogre::Root* getRoot() { return root_; };
       void setup();
       bool load();
-      void loadRessourceLocations(std::string path);
+      void loadRessourceLocations(String path);
       Ogre::SceneManager* getSceneManager();
       void startRender();
@@ -32,6 +34,6 @@
     private:
       Ogre::Root*         root_;        //!< Ogre's root
-      std::string         configPath_;  //!< path to config file
-      std::string         dataPath_;    //!< path to data file
+      String         configPath_;  //!< path to config file
+      String         dataPath_;    //!< path to data file
       Ogre::SceneManager* scene_;       //!< scene manager of the game
 
Index: code/branches/FICN/src/orxonox/Main.cc
===================================================================
--- code/branches/FICN/src/orxonox/Main.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/Main.cc	(revision 708)
@@ -39,5 +39,4 @@
 
 using namespace orxonox;
-using namespace Ogre;
 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
 #include <CoreFoundation/CoreFoundation.h>
Index: code/branches/FICN/src/orxonox/Orxonox.cc
===================================================================
--- code/branches/FICN/src/orxonox/Orxonox.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/Orxonox.cc	(revision 708)
@@ -32,5 +32,4 @@
 
 //****** OGRE ******
-#include <OgreString.h>
 #include <OgreException.h>
 #include <OgreRoot.h>
@@ -47,9 +46,11 @@
 
 //****** STD *******
-#include <string>
 #include <iostream>
 #include <exception>
 
 //***** ORXONOX ****
+//misc
+#include "misc/Sleep.h"
+
 // loader and audio
 #include "loader/LevelLoader.h"
@@ -77,8 +78,6 @@
 namespace orxonox
 {
-  using namespace Ogre;
-
    // put this in a seperate Class or solve the problem in another fashion
-  class OrxListener : public FrameListener
+  class OrxListener : public Ogre::FrameListener
   {
     public:
@@ -90,5 +89,5 @@
       }
 
-      bool frameStarted(const FrameEvent& evt)
+      bool frameStarted(const Ogre::FrameEvent& evt)
       {
         auMan_->update();
@@ -154,12 +153,12 @@
    * @param path path to config (in home dir or something)
    */
-  void Orxonox::init(int argc, char **argv, std::string path)
+  void Orxonox::init(int argc, char **argv, String path)
   {
     //TODO: find config file (assuming executable directory)
     //TODO: read config file
     //TODO: give config file to Ogre
-    std::string mode;
+    String mode;
 //     if(argc>=2)
-//       mode = std::string(argv[1]);
+//       mode = String(argv[1]);
 //     else
 //       mode = "";
@@ -170,15 +169,15 @@
     //mode = "presentation";
     if(ar.errorHandling()) die();
-    if(mode == std::string("server"))
+    if(mode == String("server"))
     {
       serverInit(path);
       mode_ = SERVER;
     }
-    else if(mode == std::string("client"))
+    else if(mode == String("client"))
     {
       clientInit(path);
       mode_ = CLIENT;
     }
-    else if(mode == std::string("presentation"))
+    else if(mode == String("presentation"))
     {
       serverInit(path);
@@ -244,5 +243,5 @@
   }
 
-  void Orxonox::standaloneInit(std::string path)
+  void Orxonox::standaloneInit(String path)
   {
     ogre_->setConfigPath(path);
@@ -263,5 +262,5 @@
   }
 
-  void Orxonox::playableServer(std::string path)
+  void Orxonox::playableServer(String path)
   {
     ogre_->setConfigPath(path);
@@ -297,5 +296,5 @@
   }
 
-  void Orxonox::serverInit(std::string path)
+  void Orxonox::serverInit(String path)
   {
     COUT(2) << "initialising server" << std::endl;
@@ -307,5 +306,5 @@
   }
 
-  void Orxonox::clientInit(std::string path)
+  void Orxonox::clientInit(String path)
   {
     COUT(2) << "initialising client" << std::endl;
@@ -322,5 +321,5 @@
   void Orxonox::defineResources()
   {
-    Ogre::String secName, typeName, archName;
+    String secName, typeName, archName;
     Ogre::ConfigFile cf;
 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
@@ -341,7 +340,7 @@
         archName = i->second;
 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
-        ResourceGroupManager::getSingleton().addResourceLocation( String(macBundlePath() + "/" + archName), typeName, secName);
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation( String(macBundlePath() + "/" + archName), typeName, secName);
 #else
-        ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName);
+        Ogre::ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName);
 #endif
       }
@@ -352,5 +351,5 @@
   {
     if (!root_->restoreConfig() && !root_->showConfigDialog())
-      throw Exception(52, "User canceled the config dialog!", "OrxApplication::setupRenderSystem()");
+      throw Ogre::Exception(52, "User canceled the config dialog!", "OrxApplication::setupRenderSystem()");
   }
 
@@ -362,6 +361,6 @@
   void Orxonox::initializeResourceGroups()
   {
-    TextureManager::getSingleton().setDefaultNumMipmaps(5);
-    ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
+    Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
+    Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
   }
 
@@ -381,7 +380,7 @@
     loader_->loadLevel();
 
-    Overlay* hudOverlay = OverlayManager::getSingleton().getByName("Orxonox/HUD1.2");
-    hud::HUD* orxonoxHud;
-    orxonoxHud = new hud::HUD();
+    Ogre::Overlay* hudOverlay = Ogre::OverlayManager::getSingleton().getByName("Orxonox/HUD1.2");
+    HUD* orxonoxHud;
+    orxonoxHud = new HUD();
     orxonoxHud->setEnergyValue(20);
     orxonoxHud->setEnergyDistr(20,20,60);
@@ -427,11 +426,11 @@
     // fixes auto repeat problem
     #if defined OIS_LINUX_PLATFORM
-      pl.insert(std::make_pair(std::string("XAutoRepeatOn"), std::string("true")));
+      pl.insert(std::make_pair(String("XAutoRepeatOn"), String("true")));
     #endif
 
-    RenderWindow *win = ogre_->getRoot()->getAutoCreatedWindow();
+      Ogre::RenderWindow *win = ogre_->getRoot()->getAutoCreatedWindow();
     win->getCustomAttribute("WINDOW", &windowHnd);
     windowHndStr << windowHnd;
-    pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
+    pl.insert(std::make_pair(String("WINDOW"), windowHndStr.str()));
     inputManager_ = OIS::InputManager::createInputSystem(pl);
 
Index: code/branches/FICN/src/orxonox/Orxonox.h
===================================================================
--- code/branches/FICN/src/orxonox/Orxonox.h	(revision 707)
+++ code/branches/FICN/src/orxonox/Orxonox.h	(revision 708)
@@ -13,4 +13,6 @@
 #include "OrxonoxPrereqs.h"
 #include "loader/LoaderPrereqs.h"
+
+#include "misc/String.h"
 #include "GraphicsEngine.h"
 
@@ -30,5 +32,5 @@
   {
     public:
-      void init(int argc, char **argv, std::string path);
+      void init(int argc, char **argv, String path);
       void start();
       // not sure if this should be private
@@ -46,9 +48,9 @@
       virtual ~Orxonox();
       // init functions
-      void serverInit(std::string path);
-      void clientInit(std::string path);
-      void standaloneInit(std::string path);
+      void serverInit(String path);
+      void clientInit(String path);
+      void standaloneInit(String path);
       // run functions
-      void playableServer(std::string path);
+      void playableServer(String path);
       void standalone();
       void defineResources();
@@ -64,5 +66,5 @@
     private:
       GraphicsEngine*       ogre_;      //!< our dearest graphics engine <3
-      std::string           dataPath_;  //!< path to data
+      String           dataPath_;  //!< path to data
       loader::LevelLoader*  loader_;    //!< level loader builds the scene
       audio::AudioManager*  auMan_;     //!< audio manager
@@ -77,5 +79,5 @@
       // this is used to identify the mode (server/client/...) we're in
       gameMode              mode_;
-      std::string           serverIp_;
+      String           serverIp_;
   };
 }
Index: code/branches/FICN/src/orxonox/OrxonoxPlatform.h
===================================================================
--- code/branches/FICN/src/orxonox/OrxonoxPlatform.h	(revision 707)
+++ code/branches/FICN/src/orxonox/OrxonoxPlatform.h	(revision 708)
@@ -220,5 +220,9 @@
 typedef unsigned char uint8;
 
-}
+#ifdef ORXONOX_DOUBLE_PRECISION
+typedef double Real;
+#else
+typedef float Real;
+#endif
 
 
@@ -270,13 +274,5 @@
 #endif
 
-
-// hack for the usleep/Sleep problem
-#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
-#  include <windows.h>
-#  define usleep(x) Sleep((x)/1000)
-#elif ORXONOX_PLATFORM == ORXONOX_PLATFORM_LINUX
-#  include <unistd.h>
-#endif
-
+} /* namespace orxonox */
 
 #endif /* _OrxonoxPlatform_H__ */
Index: code/branches/FICN/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- code/branches/FICN/src/orxonox/OrxonoxPrereqs.h	(revision 707)
+++ code/branches/FICN/src/orxonox/OrxonoxPrereqs.h	(revision 708)
@@ -40,4 +40,18 @@
 class SpaceShipSteering;
 
+// TinyXML
+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 orxonox {
   class Ambient;
@@ -70,4 +84,7 @@
   class BarrelGun;
   class WeaponStation;
+
+  class ParticleInterface;
+  class HUD;
 }
 
@@ -77,8 +94,4 @@
   class AudioSource;
   class AudioStream;
-}
-
-namespace hud {
-  class HUD;
 }
 
@@ -112,7 +125,3 @@
 }
 
-namespace particle {
-  class ParticleInterface;
-}
-
 #endif /* _OrxonoxPrereqs_H__ */
Index: code/branches/FICN/src/orxonox/SpaceshipSteering.cc
===================================================================
--- code/branches/FICN/src/orxonox/SpaceshipSteering.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/SpaceshipSteering.cc	(revision 708)
@@ -1,224 +1,231 @@
 /*
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
-
-#include "Ogre.h"
+*   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:
+*      ...
+*   Co-authors:
+*      ...
+*
+*/
+
+#include <OgreNode.h>
+#include <OgreSceneNode.h>
+
+#include "core/Debug.h"
+#include "misc/Vector3.h"
 #include "SpaceshipSteering.h"
-#include <iostream>
-#include "core/Debug.h"
-
-using namespace Ogre;
-
-SpaceshipSteering::SpaceshipSteering(float maxSpeedForward, float
-maxSpeedRotateUpDown, float maxSpeedRotateRightLeft, float
-maxSpeedLoopRightLeft) {
-
-  COUT(3) << "Info: Steering was loaded" << std::endl;
-  moveForward_ = 0;
-  rotateUp_ = 0;
-  rotateDown_ = 0;
-  rotateRight_ = 0;
-  rotateLeft_ = 0;
-  loopRight_ = 0;
-  loopLeft_ = 0;
-  brakeForward_ = 0;
-  brakeRotate_ = 0;
-  brakeLoop_ = 0;
-  speedForward_ = 0;
-  speedRotateUpDown_ = 0;
-  speedRotateRightLeft_ = 0;
-  speedLoopRightLeft_ = 0;
-  maxSpeedForward_ = maxSpeedForward;
-  maxSpeedRotateUpDown_ = maxSpeedRotateUpDown;
-  maxSpeedRotateRightLeft_ = maxSpeedRotateRightLeft;
-  maxSpeedLoopRightLeft_ = maxSpeedLoopRightLeft;
-  accelerationForward_ = 0;
-  accelerationRotateUpDown_ = 0;
-  accelerationRotateRightLeft_ = 0;
-  accelerationLoopRightLeft_ = 0;
+
+namespace orxonox
+{
+
+  SpaceshipSteering::SpaceshipSteering(float maxSpeedForward, float
+    maxSpeedRotateUpDown, float maxSpeedRotateRightLeft, float
+    maxSpeedLoopRightLeft)
+  {
+
+      COUT(3) << "Info: Steering was loaded" << std::endl;
+      moveForward_ = 0;
+      rotateUp_ = 0;
+      rotateDown_ = 0;
+      rotateRight_ = 0;
+      rotateLeft_ = 0;
+      loopRight_ = 0;
+      loopLeft_ = 0;
+      brakeForward_ = 0;
+      brakeRotate_ = 0;
+      brakeLoop_ = 0;
+      speedForward_ = 0;
+      speedRotateUpDown_ = 0;
+      speedRotateRightLeft_ = 0;
+      speedLoopRightLeft_ = 0;
+      maxSpeedForward_ = maxSpeedForward;
+      maxSpeedRotateUpDown_ = maxSpeedRotateUpDown;
+      maxSpeedRotateRightLeft_ = maxSpeedRotateRightLeft;
+      maxSpeedLoopRightLeft_ = maxSpeedLoopRightLeft;
+      accelerationForward_ = 0;
+      accelerationRotateUpDown_ = 0;
+      accelerationRotateRightLeft_ = 0;
+      accelerationLoopRightLeft_ = 0;
+  }
+
+  void SpaceshipSteering::tick(float time)
+  {
+
+    if(moveForward_ > 0) {
+      accelerationForward_ = moveForward_;
+      if(speedForward_ < maxSpeedForward_)
+        speedForward_ += accelerationForward_*time;
+      if(speedForward_ > maxSpeedForward_)
+        speedForward_ = maxSpeedForward_;
+    }
+    if(moveForward_ <= 0) {
+      accelerationForward_ = brakeForward_;
+      if(speedForward_ > 0)
+        speedForward_ -= accelerationForward_*time;
+      if(speedForward_ < 0)
+        speedForward_ = 0;
+    }
+
+    if(rotateUp_ > 0) {
+      accelerationRotateUpDown_ = rotateUp_;
+      if(speedRotateUpDown_ < maxSpeedRotateUpDown_)
+        speedRotateUpDown_ += accelerationRotateUpDown_*time;
+      if(speedRotateUpDown_ > maxSpeedRotateUpDown_)
+        speedRotateUpDown_ = maxSpeedRotateUpDown_;
+    }
+    if(rotateDown_ > 0) {
+      accelerationRotateUpDown_ = rotateDown_;
+      if(speedRotateUpDown_ > -maxSpeedRotateUpDown_)
+        speedRotateUpDown_ -= accelerationRotateUpDown_*time;
+      if(speedRotateUpDown_ < -maxSpeedRotateUpDown_)
+        speedRotateUpDown_ = -maxSpeedRotateUpDown_;
+    }
+    if(rotateUp_ == 0 && rotateDown_ == 0) {
+      accelerationRotateUpDown_ = brakeRotate_;
+      if(speedRotateUpDown_ > 0)
+        speedRotateUpDown_ -= accelerationRotateUpDown_*time;
+      if(speedRotateUpDown_ < 0)
+        speedRotateUpDown_ += accelerationRotateUpDown_*time;
+      if(abs(speedRotateUpDown_)<accelerationRotateUpDown_*time)
+        speedRotateUpDown_ = 0;
+    }
+
+    if(rotateRight_ > 0) {
+      accelerationRotateRightLeft_ = rotateRight_;
+      if(speedRotateRightLeft_ > -maxSpeedRotateRightLeft_)
+        speedRotateRightLeft_ -= accelerationRotateRightLeft_*time;
+      if(speedRotateRightLeft_ < -maxSpeedRotateRightLeft_)
+        speedRotateRightLeft_ = -maxSpeedRotateRightLeft_;
+    }
+    if(rotateLeft_ > 0) {
+      accelerationRotateRightLeft_ = rotateLeft_;
+      if(speedRotateRightLeft_ < maxSpeedRotateRightLeft_)
+        speedRotateRightLeft_ += accelerationRotateRightLeft_*time;
+      if(speedRotateRightLeft_ > maxSpeedRotateRightLeft_)
+        speedRotateRightLeft_ = maxSpeedRotateRightLeft_;
+    }
+    if(rotateRight_ == 0 && rotateLeft_ == 0) {
+      accelerationRotateRightLeft_ = brakeRotate_;
+      if(speedRotateRightLeft_ > 0)
+        speedRotateRightLeft_ -= accelerationRotateRightLeft_*time;
+      if(speedRotateRightLeft_ < 0)
+        speedRotateRightLeft_ += accelerationRotateRightLeft_*time;
+      if(abs(speedRotateRightLeft_)<accelerationRotateRightLeft_*time)
+        speedRotateRightLeft_ = 0;
+    }
+
+    if(loopRight_ > 0) {
+      accelerationLoopRightLeft_ = loopRight_;
+      if(speedLoopRightLeft_ < maxSpeedLoopRightLeft_)
+        speedLoopRightLeft_ += accelerationLoopRightLeft_*time;
+      if(speedLoopRightLeft_ > maxSpeedLoopRightLeft_)
+        speedLoopRightLeft_ = maxSpeedLoopRightLeft_;
+    }
+    if(loopLeft_ > 0) {
+      accelerationLoopRightLeft_ = loopLeft_;
+      if(speedLoopRightLeft_ > -maxSpeedLoopRightLeft_)
+        speedLoopRightLeft_ -= accelerationLoopRightLeft_*time;
+      if(speedLoopRightLeft_ < -maxSpeedLoopRightLeft_)
+        speedLoopRightLeft_ = -maxSpeedLoopRightLeft_;
+    }
+    if(loopLeft_ == 0 && loopRight_ == 0) {
+      accelerationLoopRightLeft_ = brakeLoop_;
+      if(speedLoopRightLeft_ > 0)
+        speedLoopRightLeft_ -= accelerationLoopRightLeft_*time;
+      if(speedLoopRightLeft_ < 0)
+        speedLoopRightLeft_ += accelerationLoopRightLeft_*time;
+      if(abs(speedLoopRightLeft_)<accelerationLoopRightLeft_*time)
+        speedLoopRightLeft_ = 0;
+    }
+
+    Vector3 transVector = Vector3::ZERO;
+    transVector.z = 1;
+    steeringNode_->translate(transVector*speedForward_*time,
+      Ogre::SceneNode::TS_LOCAL);
+    steeringNode_->pitch(Degree(speedRotateUpDown_*time),
+      Ogre::SceneNode::TS_LOCAL);
+    steeringNode_->yaw(Degree(speedRotateRightLeft_*time),
+      Ogre::SceneNode::TS_LOCAL);
+    steeringNode_->roll(Degree(speedLoopRightLeft_*time),
+      Ogre::SceneNode::TS_LOCAL);
+
+  }
+
+  void SpaceshipSteering::moveForward(float moveForward) {
+    moveForward_ = moveForward;
+  }
+
+  void SpaceshipSteering::rotateUp(float rotateUp) {
+    rotateUp_ = rotateUp;
+  }
+
+  void SpaceshipSteering::rotateDown(float rotateDown) {
+    rotateDown_ = rotateDown;
+  }
+
+  void SpaceshipSteering::rotateLeft(float rotateLeft) {
+    rotateLeft_ = rotateLeft;
+  }
+
+  void SpaceshipSteering::rotateRight(float rotateRight) {
+    rotateRight_ = rotateRight;
+  }
+
+  void SpaceshipSteering::loopLeft(float loopLeft) {
+    loopLeft_ = loopLeft;
+  }
+
+  void SpaceshipSteering::loopRight(float loopRight) {
+    loopRight_ = loopRight;
+  }
+
+  void SpaceshipSteering::brakeForward(float brakeForward) {
+    brakeForward_ = brakeForward;
+  }
+
+  void SpaceshipSteering::brakeRotate(float brakeRotate) {
+    brakeRotate_ = brakeRotate;
+  }
+
+  void SpaceshipSteering::brakeLoop(float brakeLoop) {
+    brakeLoop_ = brakeLoop;
+  }
+
+  void SpaceshipSteering::maxSpeedForward(float maxSpeedForward) {
+    maxSpeedForward_ = maxSpeedForward;
+  }
+
+  void SpaceshipSteering::maxSpeedRotateUpDown(float maxSpeedRotateUpDown) {
+    maxSpeedRotateUpDown_ = maxSpeedRotateUpDown;
+  }
+
+  void SpaceshipSteering::maxSpeedRotateRightLeft(float maxSpeedRotateRightLeft) {
+    maxSpeedRotateRightLeft_ = maxSpeedRotateRightLeft;
+  }
+
+  void SpaceshipSteering::maxSpeedLoopRightLeft(float maxSpeedLoopRightLeft) {
+    maxSpeedLoopRightLeft_ = maxSpeedLoopRightLeft;
+  }
+
+  void SpaceshipSteering::addNode(Ogre::SceneNode *steeringNode) {
+    steeringNode_ = steeringNode;
+  }
+
 }
-
-void SpaceshipSteering::tick(float time) {
-
-  if(moveForward_ > 0) {
-    accelerationForward_ = moveForward_;
-    if(speedForward_ < maxSpeedForward_)
-      speedForward_ += accelerationForward_*time;
-    if(speedForward_ > maxSpeedForward_)
-      speedForward_ = maxSpeedForward_;
-  }
-  if(moveForward_ <= 0) {
-    accelerationForward_ = brakeForward_;
-    if(speedForward_ > 0)
-      speedForward_ -= accelerationForward_*time;
-    if(speedForward_ < 0)
-      speedForward_ = 0;
-  }
-
-  if(rotateUp_ > 0) {
-    accelerationRotateUpDown_ = rotateUp_;
-    if(speedRotateUpDown_ < maxSpeedRotateUpDown_)
-      speedRotateUpDown_ += accelerationRotateUpDown_*time;
-    if(speedRotateUpDown_ > maxSpeedRotateUpDown_)
-      speedRotateUpDown_ = maxSpeedRotateUpDown_;
-  }
-  if(rotateDown_ > 0) {
-    accelerationRotateUpDown_ = rotateDown_;
-    if(speedRotateUpDown_ > -maxSpeedRotateUpDown_)
-      speedRotateUpDown_ -= accelerationRotateUpDown_*time;
-    if(speedRotateUpDown_ < -maxSpeedRotateUpDown_)
-      speedRotateUpDown_ = -maxSpeedRotateUpDown_;
-  }
-  if(rotateUp_ == 0 && rotateDown_ == 0) {
-    accelerationRotateUpDown_ = brakeRotate_;
-    if(speedRotateUpDown_ > 0)
-      speedRotateUpDown_ -= accelerationRotateUpDown_*time;
-    if(speedRotateUpDown_ < 0)
-      speedRotateUpDown_ += accelerationRotateUpDown_*time;
-    if(abs(speedRotateUpDown_)<accelerationRotateUpDown_*time)
-      speedRotateUpDown_ = 0;
-  }
-
-  if(rotateRight_ > 0) {
-    accelerationRotateRightLeft_ = rotateRight_;
-    if(speedRotateRightLeft_ > -maxSpeedRotateRightLeft_)
-      speedRotateRightLeft_ -= accelerationRotateRightLeft_*time;
-    if(speedRotateRightLeft_ < -maxSpeedRotateRightLeft_)
-      speedRotateRightLeft_ = -maxSpeedRotateRightLeft_;
-  }
-  if(rotateLeft_ > 0) {
-    accelerationRotateRightLeft_ = rotateLeft_;
-    if(speedRotateRightLeft_ < maxSpeedRotateRightLeft_)
-      speedRotateRightLeft_ += accelerationRotateRightLeft_*time;
-    if(speedRotateRightLeft_ > maxSpeedRotateRightLeft_)
-      speedRotateRightLeft_ = maxSpeedRotateRightLeft_;
-  }
-  if(rotateRight_ == 0 && rotateLeft_ == 0) {
-    accelerationRotateRightLeft_ = brakeRotate_;
-    if(speedRotateRightLeft_ > 0)
-      speedRotateRightLeft_ -= accelerationRotateRightLeft_*time;
-    if(speedRotateRightLeft_ < 0)
-      speedRotateRightLeft_ += accelerationRotateRightLeft_*time;
-    if(abs(speedRotateRightLeft_)<accelerationRotateRightLeft_*time)
-      speedRotateRightLeft_ = 0;
-  }
-
-  if(loopRight_ > 0) {
-    accelerationLoopRightLeft_ = loopRight_;
-    if(speedLoopRightLeft_ < maxSpeedLoopRightLeft_)
-      speedLoopRightLeft_ += accelerationLoopRightLeft_*time;
-    if(speedLoopRightLeft_ > maxSpeedLoopRightLeft_)
-      speedLoopRightLeft_ = maxSpeedLoopRightLeft_;
-  }
-  if(loopLeft_ > 0) {
-    accelerationLoopRightLeft_ = loopLeft_;
-    if(speedLoopRightLeft_ > -maxSpeedLoopRightLeft_)
-      speedLoopRightLeft_ -= accelerationLoopRightLeft_*time;
-    if(speedLoopRightLeft_ < -maxSpeedLoopRightLeft_)
-      speedLoopRightLeft_ = -maxSpeedLoopRightLeft_;
-  }
-  if(loopLeft_ == 0 && loopRight_ == 0) {
-    accelerationLoopRightLeft_ = brakeLoop_;
-    if(speedLoopRightLeft_ > 0)
-      speedLoopRightLeft_ -= accelerationLoopRightLeft_*time;
-    if(speedLoopRightLeft_ < 0)
-      speedLoopRightLeft_ += accelerationLoopRightLeft_*time;
-    if(abs(speedLoopRightLeft_)<accelerationLoopRightLeft_*time)
-      speedLoopRightLeft_ = 0;
-  }
-
-  Vector3 transVector = Vector3::ZERO;
-  transVector.z = 1;
-  steeringNode_->translate(transVector*speedForward_*time,
-  Node::TS_LOCAL);
-  steeringNode_->pitch(Degree(speedRotateUpDown_*time),
-  Node::TS_LOCAL);
-  steeringNode_->yaw(Degree(speedRotateRightLeft_*time),
-  Node::TS_LOCAL);
-  steeringNode_->roll(Degree(speedLoopRightLeft_*time),
-  Node::TS_LOCAL);
-
-}
-
-void SpaceshipSteering::moveForward(float moveForward) {
-  moveForward_ = moveForward;
-}
-
-void SpaceshipSteering::rotateUp(float rotateUp) {
-  rotateUp_ = rotateUp;
-}
-
-void SpaceshipSteering::rotateDown(float rotateDown) {
-  rotateDown_ = rotateDown;
-}
-
-void SpaceshipSteering::rotateLeft(float rotateLeft) {
-  rotateLeft_ = rotateLeft;
-}
-
-void SpaceshipSteering::rotateRight(float rotateRight) {
-  rotateRight_ = rotateRight;
-}
-
-void SpaceshipSteering::loopLeft(float loopLeft) {
-  loopLeft_ = loopLeft;
-}
-
-void SpaceshipSteering::loopRight(float loopRight) {
-  loopRight_ = loopRight;
-}
-
-void SpaceshipSteering::brakeForward(float brakeForward) {
-  brakeForward_ = brakeForward;
-}
-
-void SpaceshipSteering::brakeRotate(float brakeRotate) {
-  brakeRotate_ = brakeRotate;
-}
-
-void SpaceshipSteering::brakeLoop(float brakeLoop) {
-  brakeLoop_ = brakeLoop;
-}
-
-void SpaceshipSteering::maxSpeedForward(float maxSpeedForward) {
-  maxSpeedForward_ = maxSpeedForward;
-}
-
-void SpaceshipSteering::maxSpeedRotateUpDown(float maxSpeedRotateUpDown) {
-  maxSpeedRotateUpDown_ = maxSpeedRotateUpDown;
-}
-
-void SpaceshipSteering::maxSpeedRotateRightLeft(float maxSpeedRotateRightLeft) {
-  maxSpeedRotateRightLeft_ = maxSpeedRotateRightLeft;
-}
-
-void SpaceshipSteering::maxSpeedLoopRightLeft(float maxSpeedLoopRightLeft) {
-  maxSpeedLoopRightLeft_ = maxSpeedLoopRightLeft;
-}
-
-void SpaceshipSteering::addNode(Ogre::SceneNode *steeringNode) {
-  steeringNode_ = steeringNode;
-}
Index: code/branches/FICN/src/orxonox/SpaceshipSteering.h
===================================================================
--- code/branches/FICN/src/orxonox/SpaceshipSteering.h	(revision 707)
+++ code/branches/FICN/src/orxonox/SpaceshipSteering.h	(revision 708)
@@ -4,10 +4,11 @@
 #include "OgrePrerequisites.h"
 
-
-class SpaceshipSteering
+namespace orxonox
 {
+  class SpaceshipSteering
+  {
   public:
     SpaceshipSteering(float maxSpeedForward, float maxSpeedRotateUpDown,
-    float maxSpeedRotateRightLeft, float maxSpeedLoopRightLeft);
+      float maxSpeedRotateRightLeft, float maxSpeedLoopRightLeft);
     void tick(float time);
     void moveForward(float moveForward);
@@ -57,5 +58,6 @@
     float accelerationLoopRightLeft_;
 
-};
+  };
+}
 
 
Index: code/branches/FICN/src/orxonox/core/ArgReader.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/ArgReader.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/ArgReader.cc	(revision 708)
@@ -45,5 +45,5 @@
   }
 
-  void ArgReader::checkArgument(std::string option, std::string &string, bool must)
+  void ArgReader::checkArgument(String option, String &string, bool must)
   {
     int argpos = checkOption(option) + 1;
@@ -62,5 +62,5 @@
   }
 
-  void ArgReader::checkArgument(std::string option, int &integer, bool must)
+  void ArgReader::checkArgument(String option, int &integer, bool must)
   {
     int argpos = checkOption(option) + 1;
@@ -78,5 +78,5 @@
   }
 
-  void ArgReader::checkArgument(std::string option, float &floating, bool must)
+  void ArgReader::checkArgument(String option, float &floating, bool must)
   {
     int argpos = checkOption(option) + 1;
@@ -94,5 +94,5 @@
   }
 
-  int ArgReader::checkOption(std::string option)
+  int ArgReader::checkOption(String option)
   {
     for(int i = 1; i < counter_; i++)
Index: code/branches/FICN/src/orxonox/core/ArgReader.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ArgReader.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/ArgReader.h	(revision 708)
@@ -35,7 +35,7 @@
 #define _ArgReader_H__
 
-#include <string>
+#include "CorePrereqs.h"
 
-#include "CorePrereqs.h"
+#include "misc/String.h"
 
 namespace orxonox {
@@ -45,10 +45,10 @@
     public:
       ArgReader(int argc, char **argv);
-      void checkArgument(std::string option, std::string& string, bool must=false);
-      void checkArgument(std::string option, int& integer, bool must=false);
-      void checkArgument(std::string option, float& floating, bool must=false);
+      void checkArgument(String option, String& string, bool must=false);
+      void checkArgument(String option, int& integer, bool must=false);
+      void checkArgument(String option, float& floating, bool must=false);
       bool errorHandling();
     private:
-      int checkOption(std::string option);
+      int checkOption(String option);
 
     private:
@@ -56,5 +56,5 @@
       char **arguments_;
       bool fail_;
-      std::string errorStr_;
+      String errorStr_;
   };
 
Index: code/branches/FICN/src/orxonox/core/ClassFactory.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ClassFactory.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/ClassFactory.h	(revision 708)
@@ -36,8 +36,7 @@
 #define _ClassFactory_H__
 
-#include <string>
-
 #include "CorePrereqs.h"
 
+#include "misc/String.h"
 #include "Factory.h"
 #include "Identifier.h"
@@ -54,5 +53,5 @@
     {
         public:
-            static bool create(const std::string& name);
+            static bool create(const String& name);
             BaseObject* fabricate();
 
@@ -70,5 +69,5 @@
     */
     template <class T>
-    bool ClassFactory<T>::create(const std::string& name)
+    bool ClassFactory<T>::create(const String& name)
     {
         COUT(4) << "*** Create entry for " << name << " in Factory." << std::endl;
Index: code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/ConfigValueContainer.cc	(revision 708)
@@ -28,6 +28,6 @@
 #include <fstream>
 
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
+#include "misc/Tokenizer.h"
+#include "misc/String2Number.h"
 #include "ConfigValueContainer.h"
 
@@ -43,5 +43,5 @@
         @param defvalue The default-value
     */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, int defvalue)
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, int defvalue)
     {
         this->bAddedDescription_ = false;
@@ -53,17 +53,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, unsigned int defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, unsigned int defvalue)
     {
         this->bAddedDescription_ = false;
@@ -75,17 +75,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, char defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, char defvalue)
     {
         this->bAddedDescription_ = false;
@@ -97,17 +97,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, unsigned char defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, unsigned char defvalue)
     {
         this->bAddedDescription_ = false;
@@ -119,17 +119,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, float defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, float defvalue)
     {
         this->bAddedDescription_ = false;
@@ -141,17 +141,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, double defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, double defvalue)
     {
         this->bAddedDescription_ = false;
@@ -163,17 +163,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, long double defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, long double defvalue)
     {
         this->bAddedDescription_ = false;
@@ -185,17 +185,17 @@
         this->searchConfigFileLine();                                               // Search the entry in the config-file
 
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, bool defvalue)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, bool defvalue)
     {
         this->bAddedDescription_ = false;
@@ -211,38 +211,38 @@
 
         this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, const std::string& defvalue)
-    {
-        this->bAddedDescription_ = false;
-        this->classname_ = classname;
-        this->varname_ = varname;
-        this->type_ = String;
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, const String& defvalue)
+    {
+        this->bAddedDescription_ = false;
+        this->classname_ = classname;
+        this->varname_ = varname;
+        this->type_ = _String;
 
         this->defvalueString_ = "\"" + defvalue + "\"";                             // Convert the string to a "config-file-string" with quotes
         this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString(false);                    // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, const char* defvalue)
+        String valueString = this->parseValueString(false);                    // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, const char* defvalue)
     {
         this->bAddedDescription_ = false;
@@ -251,24 +251,24 @@
         this->type_ = ConstChar;
 
-        this->defvalueString_ = "\"" + std::string(defvalue) + "\"";                // Convert the string to a "config-file-string" with quotes
-        this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString(false);                    // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::Vector2 defvalue)
-    {
-        this->bAddedDescription_ = false;
-        this->classname_ = classname;
-        this->varname_ = varname;
-        this->type_ = Vector2;
+        this->defvalueString_ = "\"" + String(defvalue) + "\"";                // Convert the string to a "config-file-string" with quotes
+        this->searchConfigFileLine();                                               // Search the entry in the config-file
+        String valueString = this->parseValueString(false);                    // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, Vector2 defvalue)
+    {
+        this->bAddedDescription_ = false;
+        this->classname_ = classname;
+        this->varname_ = varname;
+        this->type_ = _Vector2;
 
         // Try to convert the default-value from Vector2 to string
@@ -280,22 +280,22 @@
 
         this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::Vector3 defvalue)
-    {
-        this->bAddedDescription_ = false;
-        this->classname_ = classname;
-        this->varname_ = varname;
-        this->type_ = Vector3;
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, Vector3 defvalue)
+    {
+        this->bAddedDescription_ = false;
+        this->classname_ = classname;
+        this->varname_ = varname;
+        this->type_ = _Vector3;
 
         // Try to convert the default-value from Vector3 to string
@@ -307,22 +307,22 @@
 
         this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
-        @param value This is only needed to determine the right type.
-        @param classname The name of the class the variable belongs to
-        @param varname The name of the variable
-        @param defvalue The default-value
-    */
-    ConfigValueContainer::ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::ColourValue defvalue)
-    {
-        this->bAddedDescription_ = false;
-        this->classname_ = classname;
-        this->varname_ = varname;
-        this->type_ = ColourValue;
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Constructor: Converts the default-value to a string, checks the config-file for a changed value, sets the intern value variable.
+        @param value This is only needed to determine the right type.
+        @param classname The name of the class the variable belongs to
+        @param varname The name of the variable
+        @param defvalue The default-value
+    */
+    ConfigValueContainer::ConfigValueContainer(const String& classname, const String& varname, ColourValue defvalue)
+    {
+        this->bAddedDescription_ = false;
+        this->classname_ = classname;
+        this->varname_ = varname;
+        this->type_ = _ColourValue;
 
         // Try to convert the default-value from ColourValue to string
@@ -334,15 +334,15 @@
 
         this->searchConfigFileLine();                                               // Search the entry in the config-file
-        std::string valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
-        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
-            this->resetConfigFileEntry();                                           // The conversion failed
-    }
-
-    /**
-        @brief Parses a given std::string into a value of the type of the associated variable and assigns it.
-        @param input The string to convert
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input)
+        String valueString = this->parseValueString();                         // Parses the value string from the config-file-entry
+        if (!this->parseSting(valueString, defvalue))                               // Try to convert the string to a value
+            this->resetConfigFileEntry();                                           // The conversion failed
+    }
+
+    /**
+        @brief Parses a given String into a value of the type of the associated variable and assigns it.
+        @param input The string to convert
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input)
     {
         if (this->type_ == ConfigValueContainer::Int)
@@ -362,13 +362,13 @@
         else if (this->type_ == ConfigValueContainer::Bool)
             return this->parseSting(input, this->value_.value_bool_);
-        else if (this->type_ == ConfigValueContainer::String)
+        else if (this->type_ == ConfigValueContainer::_String)
             return this->parseSting(input, this->value_string_);
         else if (this->type_ == ConfigValueContainer::ConstChar)
             return this->parseSting(input, this->value_string_);
-        else if (this->type_ == ConfigValueContainer::Vector2)
+        else if (this->type_ == ConfigValueContainer::_Vector2)
             return this->parseSting(input, this->value_vector2_);
-        else if (this->type_ == ConfigValueContainer::Vector3)
+        else if (this->type_ == ConfigValueContainer::_Vector3)
             return this->parseSting(input, this->value_vector3_);
-        else if (this->type_ == ConfigValueContainer::ColourValue)
+        else if (this->type_ == ConfigValueContainer::_ColourValue)
             return this->parseSting(input, this->value_colourvalue_);
 
@@ -377,10 +377,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type int and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, int defvalue)
+        @brief Parses a given String into a value of the type int and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, int defvalue)
     {
         return string2Number(this->value_.value_int_, input, defvalue);
@@ -388,10 +388,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type unsigned int and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, unsigned int defvalue)
+        @brief Parses a given String into a value of the type unsigned int and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, unsigned int defvalue)
     {
         return string2Number(this->value_.value_uint_, input, defvalue);
@@ -399,10 +399,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type char and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, char defvalue)
+        @brief Parses a given String into a value of the type char and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, char defvalue)
     {
         // I used value_int_ instead of value_char_ to avoid number <-> char confusion in the config-file
@@ -411,10 +411,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type unsigned char and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, unsigned char defvalue)
+        @brief Parses a given String into a value of the type unsigned char and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, unsigned char defvalue)
     {
         // I used value_uint_ instead of value_uchar_ to avoid number <-> char confusion in the config-file
@@ -423,10 +423,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type float and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, float defvalue)
+        @brief Parses a given String into a value of the type float and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, float defvalue)
     {
         return string2Number(this->value_.value_float_, input, defvalue);
@@ -434,10 +434,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type double and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, double defvalue)
+        @brief Parses a given String into a value of the type double and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, double defvalue)
     {
         return string2Number(this->value_.value_double_, input, defvalue);
@@ -445,10 +445,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type long double and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, long double defvalue)
+        @brief Parses a given String into a value of the type long double and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, long double defvalue)
     {
         return string2Number(this->value_.value_long_double_, input, defvalue);
@@ -456,10 +456,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type bool and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, bool defvalue)
+        @brief Parses a given String into a value of the type bool and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, bool defvalue)
     {
         // Try to parse the value-string - is it a word?
@@ -484,10 +484,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type std::string and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, const std::string& defvalue)
+        @brief Parses a given String into a value of the type String and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, const String& defvalue)
     {
         // Strip the quotes
@@ -509,10 +509,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type const char* and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, const char* defvalue)
+        @brief Parses a given String into a value of the type const char* and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, const char* defvalue)
     {
         // Strip the quotes
@@ -534,10 +534,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type Ogre::Vector2 and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, const Ogre::Vector2& defvalue)
+        @brief Parses a given String into a value of the type _Vector2 and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, const Vector2& defvalue)
     {
         // Strip the value-string
@@ -548,5 +548,5 @@
         if (pos1 < input.length() && pos2 < input.length() && pos1 < pos2)
         {
-            std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
+            std::vector<String> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
             if (!string2Number(this->value_vector2_.x, tokens[0], defvalue.x))
             {
@@ -568,10 +568,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type Ogre::Vector3 and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, const Ogre::Vector3& defvalue)
+        @brief Parses a given String into a value of the type Vector3 and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, const Vector3& defvalue)
     {
         // Strip the value-string
@@ -582,5 +582,5 @@
         if (pos1 < input.length() && pos2 < input.length() && pos1 < pos2)
         {
-            std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
+            std::vector<String> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
             if (!string2Number(this->value_vector3_.x, tokens[0], defvalue.x))
             {
@@ -607,10 +607,10 @@
 
     /**
-        @brief Parses a given std::string into a value of the type Ogre::ColourValue and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
-        @param input The string to convert
-        @param defvalue The default-value
-        @return True if the string was successfully parsed
-    */
-    bool ConfigValueContainer::parseSting(const std::string& input, const Ogre::ColourValue& defvalue)
+        @brief Parses a given String into a value of the type ColourValue and assigns it to the right variable. If the conversion failed, the default-value gets assigned.
+        @param input The string to convert
+        @param defvalue The default-value
+        @return True if the string was successfully parsed
+    */
+    bool ConfigValueContainer::parseSting(const String& input, const ColourValue& defvalue)
     {
         // Strip the value-string
@@ -621,5 +621,5 @@
         if (pos1 < input.length() && pos2 < input.length() && pos1 < pos2)
         {
-            std::vector<std::string> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
+            std::vector<String> tokens = tokenize(input.substr(pos1, pos2 - pos1), ",");
             if (!string2Number(this->value_colourvalue_.r, tokens[0], defvalue.r))
             {
@@ -678,5 +678,5 @@
 
         // The string of the section we're searching
-        std::string section = "";
+        String section = "";
         section.append("[");
         section.append(this->classname_);
@@ -685,5 +685,5 @@
         // Iterate through all config-file-lines
         bool success = false;
-        std::list<std::string>::iterator it1;
+        std::list<String>::iterator it1;
         for(it1 = ConfigValueContainer::getConfigFileLines().begin(); it1 != ConfigValueContainer::getConfigFileLines().end(); ++it1)
         {
@@ -696,8 +696,8 @@
                 // We found the right section
                 bool bLineIsEmpty = false;
-                std::list<std::string>::iterator positionToPutNewLineAt;
+                std::list<String>::iterator positionToPutNewLineAt;
 
                 // Iterate through all lines in the section
-                std::list<std::string>::iterator it2;
+                std::list<String>::iterator it2;
                 for(it2 = ++it1; it2 != ConfigValueContainer::getConfigFileLines().end(); ++it2)
                 {
@@ -777,8 +777,8 @@
         @return True = it's a comment
     */
-    bool ConfigValueContainer::isComment(const std::string& line)
+    bool ConfigValueContainer::isComment(const String& line)
     {
         // Strip the line, whitespaces are disturbing
-        std::string teststring = getStrippedLine(line);
+        String teststring = getStrippedLine(line);
 
         // There are four possible comment-symbols:
@@ -798,5 +798,5 @@
         @return True = it's empty
     */
-    bool ConfigValueContainer::isEmpty(const std::string& line)
+    bool ConfigValueContainer::isEmpty(const String& line)
     {
         return getStrippedLine(line) == "";
@@ -808,7 +808,7 @@
         @return The stripped line
     */
-    std::string ConfigValueContainer::getStrippedLine(const std::string& line)
-    {
-        std::string output = line;
+    String ConfigValueContainer::getStrippedLine(const String& line)
+    {
+        String output = line;
         unsigned int pos;
         while ((pos = output.find(" ")) < output.length())
@@ -825,7 +825,7 @@
         @return The value-string
     */
-    std::string ConfigValueContainer::parseValueString(bool bStripped)
-    {
-        std::string output;
+    String ConfigValueContainer::parseValueString(bool bStripped)
+    {
+        String output;
         if (bStripped)
             output = this->getStrippedLine(*this->configFileLine_);
@@ -839,8 +839,8 @@
         @returns a list, containing all entrys in the config-file.
     */
-    std::list<std::string>& ConfigValueContainer::getConfigFileLines()
+    std::list<String>& ConfigValueContainer::getConfigFileLines()
     {
         // This is done to avoid problems while executing this code before main()
-        static std::list<std::string> configFileLinesStaticReference = std::list<std::string>();
+        static std::list<String> configFileLinesStaticReference = std::list<String>();
         return configFileLinesStaticReference;
     }
@@ -866,5 +866,5 @@
         @param filename The name of the config-file
     */
-    void ConfigValueContainer::readConfigFile(const std::string& filename)
+    void ConfigValueContainer::readConfigFile(const String& filename)
     {
         // This creates the file if it's not existing
@@ -913,5 +913,5 @@
         @param filename The name of the config-file
     */
-    void ConfigValueContainer::writeConfigFile(const std::string& filename)
+    void ConfigValueContainer::writeConfigFile(const String& filename)
     {
         // Make sure we stored the config-file in the list
@@ -930,5 +930,5 @@
 
         // Iterate through the list an write the lines into the file
-        std::list<std::string>::iterator it;
+        std::list<String>::iterator it;
         for (it = ConfigValueContainer::getConfigFileLines().begin(); it != ConfigValueContainer::getConfigFileLines().end(); ++it)
         {
@@ -943,9 +943,9 @@
         @param description The description
     */
-    void ConfigValueContainer::description(const std::string& description)
+    void ConfigValueContainer::description(const String& description)
     {
         if (!this->bAddedDescription_)
         {
-            this->description_ = std::string("ConfigValueDescription::" + this->classname_ + "::" + this->varname_);
+            this->description_ = String("ConfigValueDescription::" + this->classname_ + "::" + this->varname_);
             Language::getLanguage().addEntry(description_, description);
             this->bAddedDescription_ = true;
Index: code/branches/FICN/src/orxonox/core/ConfigValueContainer.h
===================================================================
--- code/branches/FICN/src/orxonox/core/ConfigValueContainer.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/ConfigValueContainer.h	(revision 708)
@@ -43,12 +43,14 @@
 #define _ConfigValueContainer_H__
 
-#include <string>
 #include <list>
 
 #include "CorePrereqs.h"
 
-#include "OgreVector2.h"
-#include "OgreVector3.h"
-#include "OgreColourValue.h"
+#include "misc/Vector2.h"
+#include "misc/Vector3.h"
+#include "misc/Matrix3.h"
+#include "misc/Quaternion.h"
+#include "misc/String.h"
+#include "misc/ColourValue.h"
 #include "Language.h"
 
@@ -85,23 +87,23 @@
                 Bool,
                 ConstChar,
-                String,
-                Vector2,
-                Vector3,
-                ColourValue
+                _String,
+                _Vector2,
+                _Vector3,
+                _ColourValue
             };
 
-            ConfigValueContainer(const std::string& classname, const std::string& varname, int defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, unsigned int defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, char defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, unsigned char defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, float defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, double defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, long double defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, bool defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, const std::string& defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, const char* defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::Vector2 defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::Vector3 defvalue);
-            ConfigValueContainer(const std::string& classname, const std::string& varname, Ogre::ColourValue defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, int defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, unsigned int defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, char defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, unsigned char defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, float defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, double defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, long double defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, bool defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, const String& defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, const char* defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, Vector2 defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, Vector3 defvalue);
+            ConfigValueContainer(const String& classname, const String& varname, ColourValue defvalue);
 
             /** @returns the value. @param value This is only needed to determine the right type. */
@@ -122,50 +124,50 @@
             inline ConfigValueContainer& getValue(bool& value)                          { value = this->value_.value_bool_; return *this; }
             /** @returns the value. @param value This is only needed to determine the right type. */
-            inline ConfigValueContainer& getValue(std::string& value)                   { value = this->value_string_; return *this; }
+            inline ConfigValueContainer& getValue(String& value)                   { value = this->value_string_; return *this; }
             /** @returns the value. @param value This is only needed to determine the right type. */
             inline ConfigValueContainer& getValue(const char* value)                    { value = this->value_string_.c_str(); return *this; }
             /** @returns the value. @param value This is only needed to determine the right type. */
-            inline ConfigValueContainer& getValue(Ogre::Vector2& value)                 { value = this->value_vector2_; return *this; }
+            inline ConfigValueContainer& getValue(Vector2& value)                 { value = this->value_vector2_; return *this; }
             /** @returns the value. @param value This is only needed to determine the right type. */
-            inline ConfigValueContainer& getValue(Ogre::Vector3& value)                 { value = this->value_vector3_; return *this; }
+            inline ConfigValueContainer& getValue(Vector3& value)                 { value = this->value_vector3_; return *this; }
             /** @returns the value. @param value This is only needed to determine the right type. */
-            inline ConfigValueContainer& getValue(Ogre::ColourValue& value)             { value = this->value_colourvalue_; return *this; }
+            inline ConfigValueContainer& getValue(ColourValue& value)             { value = this->value_colourvalue_; return *this; }
 
-            void description(const std::string& description);
+            void description(const String& description);
 
-            bool parseSting(const std::string& input);
+            bool parseSting(const String& input);
             void resetConfigFileEntry();
             void resetConfigValue();
 
-            static std::string getStrippedLine(const std::string& line);
-            static bool isEmpty(const std::string& line);
-            static bool isComment(const std::string& line);
+            static String getStrippedLine(const String& line);
+            static bool isEmpty(const String& line);
+            static bool isComment(const String& line);
 
         private:
-            bool parseSting(const std::string& input, int defvalue);
-            bool parseSting(const std::string& input, unsigned int defvalue);
-            bool parseSting(const std::string& input, char defvalue);
-            bool parseSting(const std::string& input, unsigned char defvalue);
-            bool parseSting(const std::string& input, float defvalue);
-            bool parseSting(const std::string& input, double defvalue);
-            bool parseSting(const std::string& input, long double defvalue);
-            bool parseSting(const std::string& input, bool defvalue);
-            bool parseSting(const std::string& input, const std::string& defvalue);
-            bool parseSting(const std::string& input, const char* defvalue);
-            bool parseSting(const std::string& input, const Ogre::Vector2& defvalue);
-            bool parseSting(const std::string& input, const Ogre::Vector3& defvalue);
-            bool parseSting(const std::string& input, const Ogre::ColourValue& defvalue);
+            bool parseSting(const String& input, int defvalue);
+            bool parseSting(const String& input, unsigned int defvalue);
+            bool parseSting(const String& input, char defvalue);
+            bool parseSting(const String& input, unsigned char defvalue);
+            bool parseSting(const String& input, float defvalue);
+            bool parseSting(const String& input, double defvalue);
+            bool parseSting(const String& input, long double defvalue);
+            bool parseSting(const String& input, bool defvalue);
+            bool parseSting(const String& input, const String& defvalue);
+            bool parseSting(const String& input, const char* defvalue);
+            bool parseSting(const String& input, const Vector2& defvalue);
+            bool parseSting(const String& input, const Vector3& defvalue);
+            bool parseSting(const String& input, const ColourValue& defvalue);
 
-            static std::list<std::string>& getConfigFileLines();
+            static std::list<String>& getConfigFileLines();
             static bool finishedReadingConfigFile(bool finished = false);
             void searchConfigFileLine();
-            std::string parseValueString(bool bStripped = true);
+            String parseValueString(bool bStripped = true);
 
-            static void readConfigFile(const std::string& filename);
-            static void writeConfigFile(const std::string& filename);
+            static void readConfigFile(const String& filename);
+            static void writeConfigFile(const String& filename);
 
-            std::string         classname_;                     //!< The name of the class the variable belongs to
-            std::string         varname_;                       //!< The name of the variable
-            std::string         defvalueString_;                //!< The string of the default-variable
+            String         classname_;                     //!< The name of the class the variable belongs to
+            String         varname_;                       //!< The name of the variable
+            String         defvalueString_;                //!< The string of the default-variable
 
             union MultiType
@@ -181,10 +183,10 @@
             } value_;                                           //!< The value of the variable
 
-            std::string         value_string_;                  //!< The value, if the variable is of the type string
-            Ogre::Vector2       value_vector2_;                 //!< The value, if the variable is of the type Vector2
-            Ogre::Vector3       value_vector3_;                 //!< The value, if the variable is of the type Vector3
-            Ogre::ColourValue   value_colourvalue_;             //!< The value, if the variable is of the type ColourValue
+            String         value_string_;                  //!< The value, if the variable is of the type string
+            Vector2       value_vector2_;                 //!< The value, if the variable is of the type Vector2
+            Vector3       value_vector3_;                 //!< The value, if the variable is of the type Vector3
+            ColourValue   value_colourvalue_;             //!< The value, if the variable is of the type ColourValue
 
-            std::list<std::string>::iterator configFileLine_;   //!< An iterator, pointing to the entry of the variable in the config-file
+            std::list<String>::iterator configFileLine_;   //!< An iterator, pointing to the entry of the variable in the config-file
 
             VariableType type_;                                 //!< The type of the variable
Index: code/branches/FICN/src/orxonox/core/CoreIncludes.h
===================================================================
--- code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/CoreIncludes.h	(revision 708)
@@ -50,25 +50,4 @@
 #include "ConfigValueContainer.h"
 #include "Debug.h"
-
-#include "OgreVector2.h"
-#include "OgreVector3.h"
-#include "OgreColourValue.h"
-#include "OgreQuaternion.h"
-#include "OgreMatrix3.h"
-
-
-// Some typedefs
-namespace orxonox
-{
-    typedef Ogre::Vector2 Vector2;
-    typedef Ogre::Vector3 Vector3;
-    typedef Ogre::ColourValue ColourValue;
-    typedef Ogre::Radian Radian;
-    typedef Ogre::Degree Degree;
-    typedef Ogre::Real Real;
-    typedef Ogre::Quaternion Quaternion;
-    typedef Ogre::Matrix3 Matrix3;
-}
-
 
 /**
Index: code/branches/FICN/src/orxonox/core/CorePrereqs.h
===================================================================
--- code/branches/FICN/src/orxonox/core/CorePrereqs.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/CorePrereqs.h	(revision 708)
@@ -34,5 +34,5 @@
 #define _CorePrereqs_H__
 
-#include "../OrxonoxPlatform.h"
+#include "orxonox/OrxonoxPlatform.h"
 
 //-----------------------------------------------------------------------
Index: code/branches/FICN/src/orxonox/core/Debug.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Debug.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Debug.h	(revision 708)
@@ -37,7 +37,8 @@
 
 #include <stdio.h>
+
+#include "CorePrereqs.h"
+
 #include "OutputHandler.h"
-
-#include "CorePrereqs.h"
 
 extern "C" _CoreExport int getSoftDebugLevel();
Index: code/branches/FICN/src/orxonox/core/DebugLevel.h
===================================================================
--- code/branches/FICN/src/orxonox/core/DebugLevel.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/DebugLevel.h	(revision 708)
@@ -38,4 +38,5 @@
 
 #include "CorePrereqs.h"
+
 #include "OrxonoxClass.h"
 #include "OutputHandler.h"
Index: code/branches/FICN/src/orxonox/core/Error.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/Error.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Error.cc	(revision 708)
@@ -26,6 +26,6 @@
  */
 
+#include "Debug.h"
 #include "Error.h"
-#include "Debug.h"
 
 namespace orxonox
@@ -36,10 +36,10 @@
 	}
 
-	Error::Error(std::string errorMsg, int errorCode)
+	Error::Error(String errorMsg, int errorCode)
 	{
 		Error(errorCode, errorMsg);
 	}
 
-	Error::Error(int errorCode, std::string errorMsg)
+	Error::Error(int errorCode, String errorMsg)
 	{
 		COUT(1) << "############################ "<< std::endl
Index: code/branches/FICN/src/orxonox/core/Error.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Error.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Error.h	(revision 708)
@@ -29,7 +29,7 @@
 #define _Error_H__
 
-#include <string>
+#include "CorePrereqs.h"
 
-#include "CorePrereqs.h"
+#include "misc/String.h"
 
 namespace orxonox
@@ -39,6 +39,6 @@
 	public:
 		Error();
-		Error(std::string errorMsg, int errorCode=0);
-		Error(int errorCode, std::string errorMsg="");
+		Error(String errorMsg, int errorCode = 0);
+		Error(int errorCode, String errorMsg = "");
 	private:
 
Index: code/branches/FICN/src/orxonox/core/Factory.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/Factory.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Factory.cc	(revision 708)
@@ -42,5 +42,5 @@
         @param name The name of the wanted Identifier
     */
-    Identifier* Factory::getIdentifier(const std::string& name)
+    Identifier* Factory::getIdentifier(const String& name)
     {
         return getFactoryPointer()->identifierStringMap_[name];
@@ -61,5 +61,5 @@
         @param identifier The identifier to add
     */
-    void Factory::add(const std::string& name, Identifier* identifier)
+    void Factory::add(const String& name, Identifier* identifier)
     {
         getFactoryPointer()->identifierStringMap_[name] = identifier;
@@ -85,5 +85,5 @@
     {
         COUT(3) << "*** Factory -> Create class-hierarchy" << std::endl;
-        std::map<std::string, Identifier*>::iterator it;
+        std::map<String, Identifier*>::iterator it;
         it = getFactoryPointer()->identifierStringMap_.begin();
         (*getFactoryPointer()->identifierStringMap_.begin()).second->startCreatingHierarchy();
Index: code/branches/FICN/src/orxonox/core/Factory.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Factory.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Factory.h	(revision 708)
@@ -45,7 +45,8 @@
 
 #include <map>
-#include <string>
 
 #include "CorePrereqs.h"
+
+#include "misc/String.h"
 
 namespace orxonox
@@ -60,11 +61,11 @@
     {
         public:
-            static Identifier* getIdentifier(const std::string& name);
+            static Identifier* getIdentifier(const String& name);
             static Identifier* getIdentifier(const unsigned int id);
-            static void add(const std::string& name, Identifier* identifier);
+            static void add(const String& name, Identifier* identifier);
             static void changeNetworkID(Identifier* identifier, const unsigned int oldID, const unsigned int newID);
             static void createClassHierarchy();
 
-            static Factory* getFactoryPointer();// avoid overriding pointer_s in the static intialisation process
+            static Factory* getFactoryPointer();    // avoid overriding order problem in the static intialisation process
 
         private:
@@ -73,5 +74,5 @@
             ~Factory() {}                           // don't delete
 
-            std::map<std::string, Identifier*> identifierStringMap_;            //!< The map, mapping the name with the Identifier
+            std::map<String, Identifier*> identifierStringMap_;            //!< The map, mapping the name with the Identifier
             std::map<unsigned int, Identifier*> identifierNetworkIDMap_;        //!< The map, mapping the network ID with the Identifier
     };
Index: code/branches/FICN/src/orxonox/core/Identifier.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/Identifier.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Identifier.cc	(revision 708)
@@ -118,7 +118,7 @@
         @returns a reference to the Identifier map, containing all Identifiers.
     */
-    std::map<std::string, Identifier*>& Identifier::getIdentifierMap()
+    std::map<String, Identifier*>& Identifier::getIdentifierMap()
     {
-        static std::map<std::string, Identifier*> identifierMapStaticReference = std::map<std::string, Identifier*>();
+        static std::map<String, Identifier*> identifierMapStaticReference = std::map<String, Identifier*>();
         return identifierMapStaticReference;
     }
Index: code/branches/FICN/src/orxonox/core/Identifier.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Identifier.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Identifier.h	(revision 708)
@@ -52,9 +52,9 @@
 #define _Identifier_H__
 
-#include <string>
 #include <map>
 
 #include "CorePrereqs.h"
 
+#include "misc/String.h"
 #include "ObjectList.h"
 #include "IdentifierList.h"
@@ -112,5 +112,5 @@
 
             /** @returns the name of the class the Identifier belongs to. */
-            inline const std::string& getName() const { return this->name_; }
+            inline const String& getName() const { return this->name_; }
 
             /** @returns the parents of the class the Identifier belongs to. */
@@ -130,12 +130,12 @@
 
             /** @returns the ConfigValueContainer of a variable, given by the string of its name. @param varname The name of the variable */
-            inline ConfigValueContainer* getConfigValueContainer(const std::string& varname)
+            inline ConfigValueContainer* getConfigValueContainer(const String& varname)
                 { return this->configValues_[varname]; }
 
             /** @brief Sets the ConfigValueContainer of a variable, given by the string of its name. @param varname The name of the variablee @param container The container */
-            inline void setConfigValueContainer(const std::string& varname, ConfigValueContainer* container)
+            inline void setConfigValueContainer(const String& varname, ConfigValueContainer* container)
                 { this->configValues_[varname] = container; }
 
-            static std::map<std::string, Identifier*>& getIdentifierMap();
+            static std::map<String, Identifier*>& getIdentifierMap();
 
         private:
@@ -166,5 +166,5 @@
             IdentifierList* children_;                                  //!< The Children of the class the Identifier belongs to
 
-            std::string name_;                                          //!< The name of the class the Identifier belongs to
+            String name_;                                          //!< The name of the class the Identifier belongs to
 
             BaseFactory* factory_;                                      //!< The Factory, able to create new objects of the given class (if available)
@@ -172,5 +172,5 @@
             static int hierarchyCreatingCounter_s;                      //!< Bigger than zero if at least one Identifier stores its parents (its an int instead of a bool to avoid conflicts with multithreading)
             unsigned int classID_;                                      //!< The network ID to identify a class through the network
-            std::map<std::string, ConfigValueContainer*> configValues_; //!< A map to link the string of configurable variables with their ConfigValueContainer
+            std::map<String, ConfigValueContainer*> configValues_; //!< A map to link the string of configurable variables with their ConfigValueContainer
     };
 
@@ -189,8 +189,8 @@
     {
         public:
-            static ClassIdentifier<T>* registerClass(const IdentifierList* parents, const std::string& name, bool bRootClass);
+            static ClassIdentifier<T>* registerClass(const IdentifierList* parents, const String& name, bool bRootClass);
             static void addObject(T* object);
             static ClassIdentifier<T>* getIdentifier();
-            void setName(const std::string& name);
+            void setName(const String& name);
 
         private:
@@ -221,5 +221,5 @@
     */
     template <class T>
-    ClassIdentifier<T>* ClassIdentifier<T>::registerClass(const IdentifierList* parents, const std::string& name, bool bRootClass)
+    ClassIdentifier<T>* ClassIdentifier<T>::registerClass(const IdentifierList* parents, const String& name, bool bRootClass)
     {
         COUT(4) << "*** Register Class in " << name << "-Singleton." << std::endl;
@@ -265,5 +265,5 @@
     */
     template <class T>
-    void ClassIdentifier<T>::setName(const std::string& name)
+    void ClassIdentifier<T>::setName(const String& name)
     {
         // Make sure we didn't already set the name, to avoid duplicate entries in the Identifier map
@@ -271,5 +271,5 @@
         {
             this->name_ = name;
-            this->getIdentifierMap().insert(std::pair<std::string, Identifier*>(name, this));
+            this->getIdentifierMap().insert(std::pair<String, Identifier*>(name, this));
             this->bSetName_ = true;
         }
Index: code/branches/FICN/src/orxonox/core/IdentifierList.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/IdentifierList.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/IdentifierList.cc	(revision 708)
@@ -31,6 +31,6 @@
 */
 
+#include "Identifier.h"
 #include "IdentifierList.h"
-#include "Identifier.h"
 
 namespace orxonox
@@ -130,8 +130,8 @@
         @returns a string, containing a list of the names of all Identifiers in the list.
     */
-    std::string IdentifierList::toString() const
+    String IdentifierList::toString() const
     {
         IdentifierListElement* temp = this->first_;
-        std::string output = "";
+        String output = "";
 
         while (temp)
Index: code/branches/FICN/src/orxonox/core/IdentifierList.h
===================================================================
--- code/branches/FICN/src/orxonox/core/IdentifierList.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/IdentifierList.h	(revision 708)
@@ -37,7 +37,7 @@
 #define _IdentifierList_H__
 
-#include <string>
+#include "CorePrereqs.h"
 
-#include "CorePrereqs.h"
+#include "misc/String.h"
 
 namespace orxonox
@@ -62,5 +62,5 @@
             void remove(const Identifier* identifier);
             bool isInList(const Identifier* identifier) const;
-            std::string toString() const;
+            String toString() const;
 
             IdentifierListElement* first_;      //!< The first element in the list
Index: code/branches/FICN/src/orxonox/core/Language.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/Language.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Language.cc	(revision 708)
@@ -28,6 +28,6 @@
 #include <fstream>
 
+#include "CoreIncludes.h"
 #include "Language.h"
-#include "CoreIncludes.h"
 
 namespace orxonox
@@ -36,5 +36,5 @@
     // ###      LanguageEntry      ###
     // ###############################
-    LanguageEntry::LanguageEntry(const std::string& fallbackEntry)
+    LanguageEntry::LanguageEntry(const String& fallbackEntry)
     {
         RegisterRootObject(LanguageEntry);
@@ -44,5 +44,5 @@
     }
 
-    void LanguageEntry::setTranslation(const std::string& translation)
+    void LanguageEntry::setTranslation(const String& translation)
     {
         if (translation.compare("") != 0)
@@ -52,5 +52,5 @@
     }
 
-    void LanguageEntry::setDefault(const std::string& fallbackEntry)
+    void LanguageEntry::setDefault(const String& fallbackEntry)
     {
         if (this->translatedEntry_.compare(this->fallbackEntry_) == 0)
@@ -85,5 +85,5 @@
     }
 
-    void Language::createEntry(const LanguageEntryName& name, const std::string& entry)
+    void Language::createEntry(const LanguageEntryName& name, const String& entry)
     {
         if (!this->languageEntries_[name])
@@ -99,7 +99,7 @@
     }
 
-    void Language::addEntry(const LanguageEntryName& name, const std::string& entry)
-    {
-        std::map<std::string, LanguageEntry*>::const_iterator it = this->languageEntries_.find(name);
+    void Language::addEntry(const LanguageEntryName& name, const String& entry)
+    {
+        std::map<String, LanguageEntry*>::const_iterator it = this->languageEntries_.find(name);
         if (!it->second)
             this->createEntry(name, entry);
@@ -112,7 +112,7 @@
     }
 
-    const std::string& Language::getTranslation(const LanguageEntryName& name) const
-    {
-        std::map<std::string, LanguageEntry*>::const_iterator it = this->languageEntries_.find(name);
+    const String& Language::getTranslation(const LanguageEntryName& name) const
+    {
+        std::map<String, LanguageEntry*>::const_iterator it = this->languageEntries_.find(name);
         if (it->second)
             return it->second->getTranslation();
@@ -124,7 +124,7 @@
     }
 
-    const std::string Language::getFileName(const std::string& language)
-    {
-        return std::string("translation_" + language + ".lang");
+    const String Language::getFileName(const String& language)
+    {
+        return String("translation_" + language + ".lang");
     }
 
@@ -154,5 +154,5 @@
         {
             file.getline(line, 1024);
-            std::string lineString = std::string(line);
+            String lineString = String(line);
             if (lineString.compare("") != 0)
             {
@@ -190,5 +190,5 @@
         {
             file.getline(line, 1024);
-            std::string lineString = std::string(line);
+            String lineString = String(line);
             if (lineString.compare("") != 0)
             {
@@ -196,5 +196,5 @@
                 if (pos < lineString.size() && lineString.size() >= 3)
                 {
-                    std::map<std::string, LanguageEntry*>::const_iterator it = this->languageEntries_.find(lineString.substr(0, pos));
+                    std::map<String, LanguageEntry*>::const_iterator it = this->languageEntries_.find(lineString.substr(0, pos));
                     if (it->second)
                         it->second->setTranslation(lineString.substr(pos + 1));
Index: code/branches/FICN/src/orxonox/core/Language.h
===================================================================
--- code/branches/FICN/src/orxonox/core/Language.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/Language.h	(revision 708)
@@ -29,31 +29,31 @@
 #define _Language_H__
 
-#include <string>
 #include <map>
 
 #include "CorePrereqs.h"
 
+#include "misc/String.h"
 #include "OrxonoxClass.h"
 
 namespace orxonox
 {
-    typedef std::string LanguageEntryName;
+    typedef String LanguageEntryName;
 
     class _CoreExport LanguageEntry : public OrxonoxClass
     {
         public:
-            explicit LanguageEntry(const std::string& fallbackEntry);
-            void setTranslation(const std::string& translation);
-            void setDefault(const std::string& fallbackEntry);
+            explicit LanguageEntry(const String& fallbackEntry);
+            void setTranslation(const String& translation);
+            void setDefault(const String& fallbackEntry);
 
-            inline const std::string& getTranslation()
+            inline const String& getTranslation()
                 { return this->translatedEntry_; }
 
-            inline const std::string& getDefault()
+            inline const String& getDefault()
                 { return this->fallbackEntry_; }
 
         private:
-            std::string fallbackEntry_;
-            std::string translatedEntry_;
+            String fallbackEntry_;
+            String translatedEntry_;
     };
 
@@ -63,6 +63,6 @@
             static Language& getLanguage();
             void setConfigValues();
-            void addEntry(const LanguageEntryName& name, const std::string& entry);
-            const std::string& getTranslation(const LanguageEntryName& name) const;
+            void addEntry(const LanguageEntryName& name, const String& entry);
+            const String& getTranslation(const LanguageEntryName& name) const;
 
         private:
@@ -74,11 +74,11 @@
             void readTranslatedLanguageFile();
             void writeDefaultLanguageFile() const;
-            static const std::string getFileName(const std::string& language);
-            void createEntry(const LanguageEntryName& name, const std::string& entry);
+            static const String getFileName(const String& language);
+            void createEntry(const LanguageEntryName& name, const String& entry);
 
-            std::string language_;
-            std::string defaultLanguage_;
-            std::string defaultTranslation_;
-            std::map<std::string, LanguageEntry*> languageEntries_;
+            String language_;
+            String defaultLanguage_;
+            String defaultTranslation_;
+            std::map<String, LanguageEntry*> languageEntries_;
     };
 }
Index: code/branches/FICN/src/orxonox/core/OrxonoxClass.h
===================================================================
--- code/branches/FICN/src/orxonox/core/OrxonoxClass.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/OrxonoxClass.h	(revision 708)
@@ -37,8 +37,7 @@
 #define _OrxonoxClass_H__
 
-#include <string>
-
 #include "CorePrereqs.h"
 
+#include "misc/String.h"
 #include "MetaObjectList.h"
 #include "Identifier.h"
@@ -133,8 +132,8 @@
 
             /** @brief Sets the name of the object. @param name The name */
-            inline virtual void setName(const std::string& name) { this->name_ = name; }
+            inline virtual void setName(const String& name) { this->name_ = name; }
 
             /** @returns the name of the object. */
-            inline const std::string& getName() const { return this->name_; }
+            inline const String& getName() const { return this->name_; }
 
             /** @brief Sets the state of the objects activity. @param bActive True = active */
@@ -155,5 +154,5 @@
             MetaObjectList metaList_;       //!< MetaObjectList, containing all ObjectLists and ObjectListElements the object is registered in
 
-            std::string name_;              //!< The name of the object
+            String name_;              //!< The name of the object
             bool bActive_;                  //!< True = the object is active
             bool bVisible_;                 //!< True = the object is visible
Index: code/branches/FICN/src/orxonox/core/OutputHandler.cc
===================================================================
--- code/branches/FICN/src/orxonox/core/OutputHandler.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/core/OutputHandler.cc	(revision 708)
@@ -26,6 +26,6 @@
  */
 
+#include "DebugLevel.h"
 #include "OutputHandler.h"
-#include "DebugLevel.h"
 
 namespace orxonox
@@ -35,5 +35,5 @@
         @param logfilename The name of the logfile
     */
-    OutputHandler::OutputHandler(const std::string& logfilename)
+    OutputHandler::OutputHandler(const String& logfilename)
     {
         this->logfilename_ = logfilename;
Index: code/branches/FICN/src/orxonox/core/OutputHandler.h
===================================================================
--- code/branches/FICN/src/orxonox/core/OutputHandler.h	(revision 707)
+++ code/branches/FICN/src/orxonox/core/OutputHandler.h	(revision 708)
@@ -37,9 +37,9 @@
 #define _OutputHandler_H__
 
-#include "CorePrereqs.h"
-
 #include <iostream>
 #include <fstream>
-#include <string>
+
+#include "misc/String.h"
+#include "CorePrereqs.h"
 
 namespace orxonox
@@ -108,9 +108,9 @@
 
         private:
-            explicit OutputHandler(const std::string& logfilename);
+            explicit OutputHandler(const String& logfilename);
             OutputHandler(const OutputHandler& oh) {}; // don't copy
             virtual ~OutputHandler();
             std::ofstream logfile_;     //!< The logfile where the output is logged
-            std::string logfilename_;   //!< The name of the logfile
+            String logfilename_;   //!< The name of the logfile
             int outputLevel_;           //!< The level of the incoming output
     };
Index: code/branches/FICN/src/orxonox/hud/HUD.cc
===================================================================
--- code/branches/FICN/src/orxonox/hud/HUD.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/hud/HUD.cc	(revision 708)
@@ -1,28 +1,28 @@
 /*
- *   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:
- *      Yuning Chai
- *   Co-authors:
- *      ...
- *
- */
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
 
 #include <OgreOverlayManager.h>
@@ -33,5 +33,6 @@
 
 
-namespace hud {
+namespace orxonox
+{
   using namespace Ogre;
 
@@ -179,5 +180,5 @@
       primarChoice_->setLeft(101);
       primarChoice_->setWidth(48);
-      }
+    }
   }
 
Index: code/branches/FICN/src/orxonox/hud/HUD.h
===================================================================
--- code/branches/FICN/src/orxonox/hud/HUD.h	(revision 707)
+++ code/branches/FICN/src/orxonox/hud/HUD.h	(revision 708)
@@ -1,28 +1,28 @@
 /*
- *   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:
- *      Yuning Chai
- *   Co-authors:
- *      ...
- *
- */
+*   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:
+*      Yuning Chai
+*   Co-authors:
+*      ...
+*
+*/
 
 #ifndef _HUD_H__
@@ -31,9 +31,13 @@
 #include <OgrePrerequisites.h>
 
-//#include "../OrxonoxPrereqs.h"
+#include "../OrxonoxPrereqs.h"
+
+#include "misc/String.h"
 
 
-namespace hud {
-  class HUD {
+namespace orxonox
+{
+  class HUD
+  {
   private:
     Ogre::OverlayElement* timeText_;
@@ -57,6 +61,6 @@
     int timeSec_;
 
-    Ogre::String targetWindowName_;
-    Ogre::String targetWindowStatus_;
+    String targetWindowName_;
+    String targetWindowStatus_;
     int targetWindowDistance_;
     int targetWindowHitRating_;
@@ -89,6 +93,6 @@
 
     void setTime(int i, int j);
-    void setTargetWindowName(Ogre::String i);
-    void setTargetWindowStatus(Ogre::String i);
+    void setTargetWindowName(String i);
+    void setTargetWindowStatus(String i);
     void setTargetWindowDistance(int i);
     void setTargetWindowHitRating(int i);
Index: code/branches/FICN/src/orxonox/objects/Ambient.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Ambient.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Ambient.cc	(revision 708)
@@ -26,12 +26,16 @@
  */
 
+#include <vector>
+
 #include <OgreSceneManager.h>
-#include <string>
 
+#include "tinyxml/tinyxml.h"
+#include "misc/Tokenizer.h"
+#include "misc/String2Number.h"
+#include "misc/ColourValue.h"
+#include "misc/String.h"
+#include "../core/Debug.h"
+#include "../core/CoreIncludes.h"
 #include "../Orxonox.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
-#include "../core/Debug.h"
 
 #include "Ambient.h"
@@ -57,5 +61,5 @@
     	{
 
-	    	std::vector<std::string> colourvalues = tokenize(xmlElem->Attribute("colourvalue"),",");
+	    	std::vector<String> colourvalues = tokenize(xmlElem->Attribute("colourvalue"),",");
 	    	float r, g, b;
     	 	String2Number<float>(r, colourvalues[0]);
Index: code/branches/FICN/src/orxonox/objects/Ambient.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Ambient.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Ambient.h	(revision 708)
@@ -2,6 +2,7 @@
 #define _Ambient_H__
 
+#include "../OrxonoxPrereqs.h"
+
 #include "BaseObject.h"
-#include "../../tinyxml/tinyxml.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/BaseObject.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.cc	(revision 708)
@@ -30,4 +30,7 @@
     @brief Implementation of the BaseObject class.
 */
+
+#include "tinyxml/tinyxml.h"
+#include "../core/CoreIncludes.h"
 
 #include "BaseObject.h"
Index: code/branches/FICN/src/orxonox/objects/BaseObject.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/BaseObject.h	(revision 708)
@@ -9,6 +9,7 @@
 #define _BaseObject_H__
 
-#include "../core/CoreIncludes.h"
-#include "tinyxml/tinyxml.h"
+#include "../OrxonoxPrereqs.h"
+
+#include "../core/OrxonoxClass.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/BillboardSet.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/BillboardSet.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/BillboardSet.cc	(revision 708)
@@ -28,6 +28,11 @@
 #include <sstream>
 
+#include <OgreSceneManager.h>
+
+#include "../Orxonox.h"
+#include "misc/Vector3.h"
+#include "misc/ColourValue.h"
+
 #include "BillboardSet.h"
-#include "../Orxonox.h"
 
 namespace orxonox
@@ -40,5 +45,5 @@
     }
 
-    void BillboardSet::setBillboardSet(const std::string& file, const Ogre::ColourValue& colour, int count, const Ogre::Vector3& position)
+    void BillboardSet::setBillboardSet(const String& file, const ColourValue& colour, int count, const Vector3& position)
     {
         std::ostringstream name;
Index: code/branches/FICN/src/orxonox/objects/BillboardSet.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/BillboardSet.h	(revision 708)
@@ -2,7 +2,12 @@
 #define _BillboardSet_H__
 
-#include <string>
+#include <OgreBillboardSet.h>
 
-#include "OgreBillboardSet.h"
+#include "../OrxonoxPrereqs.h"
+
+#include "misc/String.h"
+#include "../core/CoreIncludes.h"
+#include "misc/ColourValue.h"
+#include "misc/Vector3.h"
 
 namespace orxonox
@@ -13,10 +18,10 @@
             BillboardSet();
             ~BillboardSet();
-            void setBillboardSet(const std::string& file, const Ogre::ColourValue& colour = Ogre::ColourValue(1.0, 1.0, 1.0), int count = 1, const Ogre::Vector3& position = Ogre::Vector3::ZERO);
+            void setBillboardSet(const String& file, const ColourValue& colour = ColourValue(1.0, 1.0, 1.0), int count = 1, const Vector3& position = Vector3::ZERO);
 
             inline Ogre::BillboardSet* getBillboardSet()
                 { return this->billboardSet_; }
 
-            inline const std::string& getName() const
+            inline const String& getName() const
                 { return this->billboardSet_->getName(); }
 
Index: code/branches/FICN/src/orxonox/objects/Camera.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Camera.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Camera.cc	(revision 708)
@@ -3,13 +3,15 @@
 #include <OgreRoot.h>
 #include <OgreRenderWindow.h>
+#include <OgreViewport.h>
 
-#include <string>
-
+#include "tinyxml/tinyxml.h"
+#include "misc/Tokenizer.h"
+#include "misc/String2Number.h"
+#include "misc/Vector3.h"
+#include "misc/String.h"
+#include "../core/Debug.h"
+#include "../core/CoreIncludes.h"
 #include "../Orxonox.h"
 #include "../GraphicsEngine.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
-#include "../core/Debug.h"
 
 #include "Camera.h"
@@ -36,13 +38,13 @@
         //    <Camera name="Camera" pos="0,0,-250" lookat="0,0,0" />
 
-        std::string name = xmlElem->Attribute("name");
-        std::string pos = xmlElem->Attribute("pos");
-        std::string lookat = xmlElem->Attribute("lookat");
+        String name = xmlElem->Attribute("name");
+        String pos = xmlElem->Attribute("pos");
+        String lookat = xmlElem->Attribute("lookat");
 
         Ogre::Camera *cam = mgr->createCamera(name);
 
         float x, y, z;
-        std::vector<std::string> posVec = tokenize(xmlElem->Attribute("pos"),",");
-         String2Number<float>(x, posVec[0]);
+        std::vector<String> posVec = tokenize(xmlElem->Attribute("pos"),",");
+        String2Number<float>(x, posVec[0]);
         String2Number<float>(y, posVec[1]);
         String2Number<float>(z, posVec[2]);
@@ -57,5 +59,5 @@
         cam->lookAt(Vector3(x,y,z));
 
-        std::string node = xmlElem->Attribute("node");
+        String node = xmlElem->Attribute("node");
 
         Ogre::SceneNode* sceneNode = (Ogre::SceneNode*)mgr->getRootSceneNode()->createChildSceneNode(node); //getChild(node);
Index: code/branches/FICN/src/orxonox/objects/Camera.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Camera.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Camera.h	(revision 708)
@@ -2,6 +2,7 @@
 #define _Camera_H__
 
+#include "../OrxonoxPrereqs.h"
+
 #include "BaseObject.h"
-#include "../../tinyxml/tinyxml.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/Explosion.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Explosion.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Explosion.cc	(revision 708)
@@ -26,6 +26,14 @@
  */
 
+#include <OgreParticleSystem.h>
+#include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
+
+#include "../core/CoreIncludes.h"
+#include "misc/ColourValue.h"
+#include "../Orxonox.h"
+#include "../particle/ParticleInterface.h"
+
 #include "Explosion.h"
-#include "../Orxonox.h"
 
 namespace orxonox
@@ -46,5 +54,5 @@
             Vector3 position = owner->getNode()->getWorldPosition();
 
-            this->particle_ = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(), "explosion" + this->getName(), "Orxonox/treibwerk");
+            this->particle_ = new ParticleInterface(Orxonox::getSingleton()->getSceneManager(), "explosion" + this->getName(), "Orxonox/treibwerk");
             this->particle_->getParticleSystem()->setParameter("local_space", "true");
             this->particle_->newEmitter();
Index: code/branches/FICN/src/orxonox/objects/Explosion.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Explosion.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Explosion.h	(revision 708)
@@ -2,5 +2,6 @@
 #define _Explosion_H__
 
-#include "../particle/ParticleInterface.h"
+#include "../OrxonoxPrereqs.h"
+
 #include "WorldEntity.h"
 #include "Timer.h"
@@ -18,5 +19,5 @@
             Timer<Explosion> destroyTimer_;
             float lifetime_;
-            particle::ParticleInterface* particle_;
+            ParticleInterface* particle_;
     };
 }
Index: code/branches/FICN/src/orxonox/objects/Fighter.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Fighter.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Fighter.cc	(revision 708)
@@ -26,16 +26,19 @@
  */
 
-#include "Fighter.h"
-
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/String2Number.h"
+#include <OgreCamera.h>
+#include <OgreRenderWindow.h>
+#include <OgreSceneManager.h>
+#include <OgreSceneNode.h>
+
+#include "tinyxml/tinyxml.h"
+#include "misc/String2Number.h"
+#include "misc/String.h"
 #include "../core/CoreIncludes.h"
 #include "../Orxonox.h"
+#include "../particle/ParticleInterface.h"
 #include "weapon_system/AmmunitionDump.h"
 #include "weapon_system/BarrelGun.h"
 
-#include "OgreCamera.h"
-#include <OgreRenderWindow.h>
-#include <string>
+#include "Fighter.h"
 
 namespace orxonox
@@ -141,5 +144,5 @@
 #endif
 
-        tt = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
+        tt = new ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
         tt->getParticleSystem()->setParameter("local_space","true");
         tt->newEmitter();
@@ -171,8 +174,8 @@
         if (xmlElem->Attribute("forward") && xmlElem->Attribute("rotateupdown") && xmlElem->Attribute("rotaterightleft") && xmlElem->Attribute("looprightleft"))
         {
-            std::string forwardStr = xmlElem->Attribute("forward");
-            std::string rotateupdownStr = xmlElem->Attribute("rotateupdown");
-            std::string rotaterightleftStr = xmlElem->Attribute("rotaterightleft");
-            std::string looprightleftStr = xmlElem->Attribute("looprightleft");
+            String forwardStr = xmlElem->Attribute("forward");
+            String rotateupdownStr = xmlElem->Attribute("rotateupdown");
+            String rotaterightleftStr = xmlElem->Attribute("rotaterightleft");
+            String looprightleftStr = xmlElem->Attribute("looprightleft");
 
             String2Number<float>(this->maxSpeedForward_, forwardStr);
Index: code/branches/FICN/src/orxonox/objects/Fighter.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Fighter.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Fighter.h	(revision 708)
@@ -2,12 +2,11 @@
 #define _Fighter_H__
 
+#include <OIS/OIS.h>
+
 #include "../OrxonoxPrereqs.h"
 
-#include <OIS/OIS.h>
-#include <string.h>
+#include "Model.h"
 
-#include "Model.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../particle/ParticleInterface.h"
+class TiXmlElement; // Forward declaration
 
 namespace orxonox
@@ -45,6 +44,6 @@
             bool setMouseEventCallback_;
 
-            particle::ParticleInterface *w;
-            particle::ParticleInterface *tt;
+            ParticleInterface *w;
+            ParticleInterface *tt;
 
             AmmunitionDump* ammoDump_;
Index: code/branches/FICN/src/orxonox/objects/Light.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Light.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Light.cc	(revision 708)
@@ -1,6 +1,9 @@
 #include <sstream>
 
+#include <OgreSceneManager.h>
+
+#include "../Orxonox.h"
+
 #include "Light.h"
-#include "../Orxonox.h"
 
 namespace orxonox
@@ -13,5 +16,5 @@
     }
 
-    void Light::setLight(Ogre::Light::LightTypes type, const Ogre::ColourValue& diffuse, const Ogre::ColourValue& specular)
+    void Light::setLight(Ogre::Light::LightTypes type, const ColourValue& diffuse, const ColourValue& specular)
     {
         std::ostringstream name;
Index: code/branches/FICN/src/orxonox/objects/Light.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Light.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Light.h	(revision 708)
@@ -2,8 +2,10 @@
 #define _Light_H__
 
-#include <string>
+#include <OgreLight.h>
 
-#include "OgreLight.h"
-#include "OgreColourValue.h"
+#include "../OrxonoxPrereqs.h"
+
+#include "misc/String.h"
+#include "misc/ColourValue.h"
 
 namespace orxonox
@@ -14,10 +16,10 @@
             Light();
             ~Light();
-            void setLight(Ogre::Light::LightTypes type = Ogre::Light::LT_POINT, const Ogre::ColourValue& diffuse = Ogre::ColourValue(1.0, 1.0, 1.0), const Ogre::ColourValue& specular = Ogre::ColourValue(1.0, 1.0, 1.0));
+            void setLight(Ogre::Light::LightTypes type = Ogre::Light::LT_POINT, const ColourValue& diffuse = ColourValue(1.0, 1.0, 1.0), const ColourValue& specular = ColourValue(1.0, 1.0, 1.0));
 
             inline Ogre::Light* getLight()
                 { return this->light_; }
 
-            inline const std::string& getName() const
+            inline const String& getName() const
                 { return this->light_->getName(); }
 
Index: code/branches/FICN/src/orxonox/objects/Mesh.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Mesh.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Mesh.cc	(revision 708)
@@ -28,6 +28,9 @@
 #include <sstream>
 
+#include <OgreSceneManager.h>
+
+#include "../Orxonox.h"
+
 #include "Mesh.h"
-#include "../Orxonox.h"
 
 namespace orxonox
@@ -40,5 +43,5 @@
     }
 
-    void Mesh::setMesh(const std::string& file)
+    void Mesh::setMesh(const String& file)
     {
         std::ostringstream name;
Index: code/branches/FICN/src/orxonox/objects/Mesh.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Mesh.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Mesh.h	(revision 708)
@@ -2,7 +2,9 @@
 #define _Mesh_H__
 
-#include <string>
+#include <OgreEntity.h>
 
-#include "OgreEntity.h"
+#include "../OrxonoxPrereqs.h"
+
+#include "misc/String.h"
 
 namespace orxonox
@@ -13,10 +15,10 @@
             Mesh();
             ~Mesh();
-            void setMesh(const std::string& file);
+            void setMesh(const String& file);
 
             inline Ogre::Entity* getEntity()
                 { return this->entity_; }
 
-            inline const std::string& getName() const
+            inline const String& getName() const
                 { return this->entity_->getName(); }
 
Index: code/branches/FICN/src/orxonox/objects/Model.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Model.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Model.cc	(revision 708)
@@ -26,12 +26,11 @@
  */
 
-#include <string>
+#include "tinyxml/tinyxml.h"
+#include "misc/Tokenizer.h"
+#include "misc/String2Number.h"
+#include "../core/CoreIncludes.h"
+#include "../Orxonox.h"
 
 #include "Model.h"
-#include "../core/CoreIncludes.h"
-#include "../Orxonox.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/Model.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Model.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Model.h	(revision 708)
@@ -2,10 +2,14 @@
 #define _Model_H__
 
+#include "../OrxonoxPrereqs.h"
+
 #include "WorldEntity.h"
 #include "Mesh.h"
-#include "../../tinyxml/tinyxml.h"
+
+class TiXmlElement; // Forward declaration
 
 namespace orxonox
 {
+
     class Model : public WorldEntity
     {
@@ -17,5 +21,5 @@
 
         private:
-            std::string meshSrc_;
+            String meshSrc_;
             Mesh mesh_;
             void registerAllVariables();
Index: code/branches/FICN/src/orxonox/objects/NPC.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/NPC.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/NPC.cc	(revision 708)
@@ -26,7 +26,6 @@
  */
 
+#include "../core/CoreIncludes.h"
 #include "NPC.h"
-#include "../core/Iterator.h"
-#include "../core/ObjectList.h"
 
 namespace orxonox {
Index: code/branches/FICN/src/orxonox/objects/NPC.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/NPC.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/NPC.h	(revision 708)
@@ -8,6 +8,9 @@
 #define _NPC_H__
 
-// includes
+#include "../OrxonoxPrereqs.h"
+
 #include "Model.h"
+
+class TiXmlElement; // Forward declaration
 
 namespace orxonox {
Index: code/branches/FICN/src/orxonox/objects/Projectile.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Projectile.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Projectile.cc	(revision 708)
@@ -26,8 +26,10 @@
  */
 
-#include "Projectile.h"
 #include "../core/CoreIncludes.h"
+#include "SpaceShip.h"
 #include "Explosion.h"
 #include "Model.h"
+
+#include "Projectile.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/Projectile.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Projectile.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Projectile.h	(revision 708)
@@ -2,11 +2,14 @@
 #define _Projectile_H__
 
+#include "../OrxonoxPrereqs.h"
+
 #include "WorldEntity.h"
 #include "BillboardSet.h"
-#include "SpaceShip.h"
 #include "Timer.h"
 
 namespace orxonox
 {
+    class SpaceShip; // Forward declaration
+
     class Projectile : public WorldEntity
     {
Index: code/branches/FICN/src/orxonox/objects/Skybox.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/Skybox.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Skybox.cc	(revision 708)
@@ -27,10 +27,11 @@
 
 #include <OgreSceneManager.h>
-#include <string>
 
+#include "tinyxml/tinyxml.h"
+//#include "misc/Tokenizer.h"
+//#include "misc/String2Number.h"
+#include "misc/String.h"
 #include "../Orxonox.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
+#include "../core/CoreIncludes.h"
 #include "../core/Debug.h"
 
@@ -56,5 +57,5 @@
     	if (xmlElem->Attribute("src"))
     	{
-    		std::string skyboxSrc = xmlElem->Attribute("src");
+    		String skyboxSrc = xmlElem->Attribute("src");
 	    	mgr->setSkyBox(true, skyboxSrc);
 
Index: code/branches/FICN/src/orxonox/objects/Skybox.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Skybox.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Skybox.h	(revision 708)
@@ -2,6 +2,9 @@
 #define _Skybox_H__
 
+#include "../OrxonoxPrereqs.h"
+
 #include "BaseObject.h"
-#include "../../tinyxml/tinyxml.h"
+
+class TiXmlElement; // Forward declaration
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/SpaceShip.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/SpaceShip.cc	(revision 708)
@@ -26,14 +26,20 @@
  */
 
+#include <OIS/OIS.h>
+#include <OgreCamera.h>
+#include <OgreRenderWindow.h>
+#include <OgreParticleSystem.h>
+#include <OgreSceneNode.h>
+
+#include "tinyxml/tinyxml.h"
+#include "misc/String2Number.h"
+#include "misc/String.h"
+#include "../core/CoreIncludes.h"
+#include "../core/Debug.h"
+#include "../Orxonox.h"
+#include "../particle/ParticleInterface.h"
+#include "Projectile.h"
+
 #include "SpaceShip.h"
-#include "Projectile.h"
-
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/String2Number.h"
-#include "../core/CoreIncludes.h"
-#include "../Orxonox.h"
-
-#include "OgreCamera.h"
-#include <OgreRenderWindow.h>
 
 namespace orxonox
@@ -134,5 +140,5 @@
 
         // START CREATING THRUSTER
-        this->tt_ = new particle::ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
+        this->tt_ = new ParticleInterface(Orxonox::getSingleton()->getSceneManager(),"twinthruster" + this->getName(),"Orxonox/engineglow");
         this->tt_->getParticleSystem()->setParameter("local_space","true");
         this->tt_->newEmitter();
@@ -190,8 +196,8 @@
         if (xmlElem->Attribute("forward") && xmlElem->Attribute("rotateupdown") && xmlElem->Attribute("rotaterightleft") && xmlElem->Attribute("looprightleft"))
         {
-            std::string forwardStr = xmlElem->Attribute("forward");
-            std::string rotateupdownStr = xmlElem->Attribute("rotateupdown");
-            std::string rotaterightleftStr = xmlElem->Attribute("rotaterightleft");
-            std::string looprightleftStr = xmlElem->Attribute("looprightleft");
+            String forwardStr = xmlElem->Attribute("forward");
+            String rotateupdownStr = xmlElem->Attribute("rotateupdown");
+            String rotaterightleftStr = xmlElem->Attribute("rotaterightleft");
+            String looprightleftStr = xmlElem->Attribute("looprightleft");
 
             String2Number<float>(this->maxSpeedForward_, forwardStr);
@@ -206,11 +212,11 @@
         {
 
-            std::string msStr = xmlElem->Attribute("maxSpeed");
-            std::string msabsStr = xmlElem->Attribute("maxSideAndBackSpeed");
-            std::string mrStr = xmlElem->Attribute("maxRotation");
-            std::string taStr = xmlElem->Attribute("transAcc");
-            std::string raStr = xmlElem->Attribute("rotAcc");
-            std::string tdStr = xmlElem->Attribute("transDamp");
-            std::string rdStr = xmlElem->Attribute("rotDamp");
+            String msStr = xmlElem->Attribute("maxSpeed");
+            String msabsStr = xmlElem->Attribute("maxSideAndBackSpeed");
+            String mrStr = xmlElem->Attribute("maxRotation");
+            String taStr = xmlElem->Attribute("transAcc");
+            String raStr = xmlElem->Attribute("rotAcc");
+            String tdStr = xmlElem->Attribute("transDamp");
+            String rdStr = xmlElem->Attribute("rotDamp");
 
             String2Number<float>(this->maxSpeed_, msStr);
Index: code/branches/FICN/src/orxonox/objects/SpaceShip.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/SpaceShip.h	(revision 708)
@@ -2,15 +2,18 @@
 #define _SpaceShip_H__
 
-#include <OIS/OIS.h>
+#include <OgrePrerequisites.h>
+#include <OIS/OISMouse.h>
+
+#include "../OrxonoxPrereqs.h"
 
 #include "Model.h"
 #include "BillboardSet.h"
-#include "OgreSceneNode.h"
 
-#include "../../tinyxml/tinyxml.h"
-#include "../particle/ParticleInterface.h"
+class TiXmlElement;          // Forward declaration
 
 namespace orxonox
 {
+    class ParticleInterface; // Forward declaration
+
     class SpaceShip : public Model, public OIS::MouseListener
     {
@@ -50,5 +53,5 @@
             Ogre::SceneNode* camNode_;
 
-            particle::ParticleInterface* tt_;
+            ParticleInterface* tt_;
 
             BillboardSet redBillboard_;
Index: code/branches/FICN/src/orxonox/objects/Tickable.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Tickable.h	(revision 708)
@@ -41,6 +41,9 @@
 #define _Tickable_H__
 
+#include <OgreFrameListener.h>
+
+#include "../OrxonoxPrereqs.h"
+
 #include "../core/CoreIncludes.h"
-#include "OgreFrameListener.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/Timer.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/Timer.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/Timer.h	(revision 708)
@@ -58,6 +58,9 @@
 #define _Timer_H__
 
+#include <OgreFrameListener.h>
+
+#include "../OrxonoxPrereqs.h"
+
 #include "../core/CoreIncludes.h"
-#include "OgreFrameListener.h"
 
 namespace orxonox
Index: code/branches/FICN/src/orxonox/objects/WorldEntity.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/WorldEntity.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/WorldEntity.cc	(revision 708)
@@ -26,13 +26,13 @@
  */
 
-#include <string>
 #include <sstream>
 
-#include "WorldEntity.h"
+#include "tinyxml/tinyxml.h"
+#include "misc/Tokenizer.h"
+#include "misc/String2Number.h"
+#include "misc/String.h"
 #include "../core/CoreIncludes.h"
 #include "../Orxonox.h"
-#include "../../tinyxml/tinyxml.h"
-#include "../../misc/Tokenizer.h"
-#include "../../misc/String2Number.h"
+#include "WorldEntity.h"
 
 namespace orxonox
@@ -88,5 +88,5 @@
         if (xmlElem->Attribute("position"))
         {
-            std::vector<std::string> pos = tokenize(xmlElem->Attribute("position"),",");
+            std::vector<String> pos = tokenize(xmlElem->Attribute("position"),",");
             float x, y, z;
             String2Number<float>(x, pos[0]);
@@ -98,5 +98,5 @@
         if (xmlElem->Attribute("direction"))
         {
-            std::vector<std::string> pos = tokenize(xmlElem->Attribute("direction"),",");
+            std::vector<String> pos = tokenize(xmlElem->Attribute("direction"),",");
             float x, y, z;
             String2Number<float>(x, pos[0]);
@@ -125,5 +125,5 @@
         if (xmlElem->Attribute("scale"))
         {
-            std::string scaleStr = xmlElem->Attribute("scale");
+            String scaleStr = xmlElem->Attribute("scale");
             float scale;
             String2Number<float>(scale, scaleStr);
@@ -133,5 +133,5 @@
         if (xmlElem->Attribute("rotationAxis"))
         {
-            std::vector<std::string> pos = tokenize(xmlElem->Attribute("rotationAxis"),",");
+            std::vector<String> pos = tokenize(xmlElem->Attribute("rotationAxis"),",");
             float x, y, z;
             String2Number<float>(x, pos[0]);
Index: code/branches/FICN/src/orxonox/objects/WorldEntity.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/WorldEntity.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/WorldEntity.h	(revision 708)
@@ -5,4 +5,9 @@
 #include <OgreSceneNode.h>
 
+#include "../OrxonoxPrereqs.h"
+
+#include "misc/Vector3.h"
+#include "misc/Matrix3.h"
+#include "misc/Quaternion.h"
 #include "network/Synchronisable.h"
 #include "tinyxml/tinyxml.h"
Index: code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.cc	(revision 708)
@@ -59,5 +59,5 @@
   }
 
-  void AmmunitionDump::setDumpSize(const Ogre::String &name, int size)
+  void AmmunitionDump::setDumpSize(const String &name, int size)
   {
     if (size < 0)
@@ -70,5 +70,5 @@
 
 
-  int AmmunitionDump::store(const Ogre::String &name, int quantity)
+  int AmmunitionDump::store(const String &name, int quantity)
   {
     int id = Orxonox::getSingleton()->getBulletMgr()->getAmmunitionID(name);
@@ -87,5 +87,5 @@
 
 
-  int AmmunitionDump::getAmmunition(const Ogre::String &name, int quantity)
+  int AmmunitionDump::getAmmunition(const String &name, int quantity)
   {
     int id = Orxonox::getSingleton()->getBulletMgr()->getAmmunitionID(name);
@@ -103,5 +103,5 @@
 
 
-  int AmmunitionDump::getStockSize(const Ogre::String &name)
+  int AmmunitionDump::getStockSize(const String &name)
   {
     int id = Orxonox::getSingleton()->getBulletMgr()->getAmmunitionID(name);
Index: code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/AmmunitionDump.h	(revision 708)
@@ -32,8 +32,9 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 #include "network/Synchronisable.h"
 //#include "../core/CoreIncludes.h"
+#include "misc/String.h"
 #include "../BaseObject.h"
 
@@ -46,11 +47,11 @@
 	  ~AmmunitionDump();
 
-    void setDumpSize(const Ogre::String &name, int size);
+    void setDumpSize(const String &name, int size);
 
-    int store(const Ogre::String &name, int quantiy);
+    int store(const String &name, int quantiy);
 
-    int getAmmunition(const Ogre::String &name, int quantity);
+    int getAmmunition(const String &name, int quantity);
 
-    int getStockSize(const Ogre::String &name);
+    int getStockSize(const String &name);
 
     virtual void loadParams(TiXmlElement* xmlElem) { BaseObject::loadParams(xmlElem); };
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.cc	(revision 708)
@@ -26,11 +26,10 @@
  */
 
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
+#include <OgreStringConverter.h>
+#include <OgreSceneNode.h>
+#include <OgreEntity.h>
+#include <OgreSceneManager.h>
 
+#include "misc/Vector3.h"
 #include "Bullet.h"
 #include "BulletManager.h"
@@ -42,6 +41,4 @@
 
 namespace orxonox {
-  using namespace Ogre;
-
   CreateFactory(BarrelGun);
 
@@ -78,5 +75,5 @@
 
     Ogre::Entity* bulletEntity = sceneMgr_->createEntity("BulletEntity"
-          + StringConverter::toString(bulletCounter_++), "Barrel.mesh");
+      + Ogre::StringConverter::toString(bulletCounter_++), "Barrel.mesh");
 
     Vector3 speed = (temp->getOrientation() * Vector3(1, 0, 0))
@@ -106,5 +103,4 @@
 
 
-
   void BarrelGun::secondaryFire()
   {
@@ -120,5 +116,5 @@
 
     Ogre::Entity* bulletEntity = sceneMgr_->createEntity("BulletEntity"
-          + StringConverter::toString(bulletCounter_++), "Barrel.mesh");
+      + Ogre::StringConverter::toString(bulletCounter_++), "Barrel.mesh");
 
     Vector3 speed = (temp->getOrientation() * Vector3(1, 0, 0))
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BarrelGun.h	(revision 708)
@@ -32,5 +32,5 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 #include "BaseWeapon.h"
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.cc	(revision 708)
@@ -26,13 +26,11 @@
  */
 
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
+#include <OgreStringConverter.h>
+#include <OgreSceneNode.h>
+#include <OgreEntity.h>
+#include <OgreSceneManager.h>
 
+#include "misc/Vector3.h"
 #include "../../Orxonox.h"
-
 #include "Bullet.h"
 #include "BulletManager.h"
@@ -43,8 +41,4 @@
 
 namespace orxonox {
-  using namespace Ogre;
-  
-  //CreateFactory(BaseWeapon);
-
   float BaseWeapon::nextActionValidityPeriod_s = 0.5;
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BaseWeapon.h	(revision 708)
@@ -32,5 +32,5 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 #include "../Model.h"
@@ -116,6 +116,6 @@
     float primaryFiringRate_;
     float secondaryFiringRate_;
-    Ogre::Real primaryBulletSpeed_;
-    Ogre::Real secondaryBulletSpeed_;
+    Real primaryBulletSpeed_;
+    Real secondaryBulletSpeed_;
 
     int magazineSize_;
Index: code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.cc	(revision 708)
@@ -26,14 +26,7 @@
  */
 
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreVector3.h"
-
 #include "Bullet.h"
 
-
 namespace orxonox {
-  using namespace Ogre;
-
   CreateFactory(Bullet);
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/Bullet.h	(revision 708)
@@ -32,5 +32,5 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 #include "../Model.h"
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.cc	(revision 708)
@@ -26,6 +26,4 @@
  */
 
-#include "OgreSceneNode.h"
-
 #include "BulletManager.h"
 #include "Bullet.h"
@@ -33,6 +31,4 @@
 
 namespace orxonox {
-  using namespace Ogre;
-
   CreateFactory(BulletManager);
 
@@ -86,7 +82,7 @@
   }
 
-  int BulletManager::getAmmunitionID(const Ogre::String &ammoName)
+  int BulletManager::getAmmunitionID(const String &ammoName)
   {
-    Ogre::String ammoTypes[] = { "Energy Cell", "Barrel", "Lead Shot" };
+    String ammoTypes[] = { "Energy Cell", "Barrel", "Lead Shot" };
     int ammoTypesLength = 3;
 
Index: code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/BulletManager.h	(revision 708)
@@ -32,9 +32,10 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 #include "network/Synchronisable.h"
 #include "tinyxml/tinyxml.h"
 //#include "../core/CoreIncludes.h"
+#include "misc/String.h"
 #include "../BaseObject.h"
 #include "../Tickable.h"
@@ -49,5 +50,5 @@
     void addBullet(Bullet*);
 
-    int getAmmunitionID(const Ogre::String&);
+    int getAmmunitionID(const String&);
 
     int getNumberOfAmmos();
Index: code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.cc
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.cc	(revision 708)
@@ -26,19 +26,9 @@
  */
 
-#include "OgreMath.h"
-#include "OgreVector3.h"
-#include "OgreStringConverter.h"
-#include "OgreSceneNode.h"
-#include "OgreEntity.h"
-#include "OgreSceneManager.h"
-
 #include "BaseWeapon.h"
-
 #include "WeaponStation.h"
 
 
 namespace orxonox {
-  using namespace Ogre;
-
   WeaponStation::WeaponStation(int stationSize)
         : slots_(new BaseWeapon*[stationSize]),
Index: code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h
===================================================================
--- code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h	(revision 707)
+++ code/branches/FICN/src/orxonox/objects/weapon_system/WeaponStation.h	(revision 708)
@@ -32,5 +32,5 @@
 #include <OgrePrerequisites.h>
 
-#include "orxonox/OrxonoxPrereqs.h"
+#include "../../OrxonoxPrereqs.h"
 
 
Index: code/branches/FICN/src/orxonox/particle/ParticleInterface.cc
===================================================================
--- code/branches/FICN/src/orxonox/particle/ParticleInterface.cc	(revision 707)
+++ code/branches/FICN/src/orxonox/particle/ParticleInterface.cc	(revision 708)
@@ -1,45 +1,45 @@
 /*
- *   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:
- *      ...
- *   Co-authors:
- *      ...
- *
- */
+*   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:
+*      ...
+*   Co-authors:
+*      ...
+*
+*/
 
 /**
- * @file ParticleInterface.cc
- * @brief class to control praticle effects
- */
+* @file ParticleInterface.cc
+* @brief class to control praticle effects
+*/
 
 #include "ParticleInterface.h"
 // #include <OgreParticleSystem.h>
 // #include <Ogre.h>
-//#include <OIS/OIS.h>
+// #include <OIS/OIS.h>
 // #include <CEGUI/CEGUI.h>
 // #include <CEGUIRenderer.h>
 
 
-using namespace Ogre;
 
-namespace particle {
+namespace orxonox {
+  using namespace Ogre;
 
   ParticleInterface::ParticleInterface( SceneManager *sceneManager, String name, String templateName )
@@ -122,5 +122,5 @@
   }
 
- // TODO check if this really works
+  // TODO check if this really works
   Vector3 ParticleInterface::getPositionOfEmitter ( int emitterNr )
   {
Index: code/branches/FICN/src/orxonox/particle/ParticleInterface.h
===================================================================
--- code/branches/FICN/src/orxonox/particle/ParticleInterface.h	(revision 707)
+++ code/branches/FICN/src/orxonox/particle/ParticleInterface.h	(revision 708)
@@ -11,56 +11,63 @@
 #include <OgreSceneManager.h>
 
+#include "../OrxonoxPrereqs.h"
 
-namespace particle
+#include "misc/Vector3.h"
+#include "misc/String.h"
+#include "misc/ColourValue.h"
+
+
+namespace orxonox
 {
 
-class ParticleInterface
-{
- public:
+  class ParticleInterface
+  {
+  public:
 
-  ParticleInterface( Ogre::SceneManager *sceneManager, Ogre::String name, Ogre::String templateName );
-  ~ParticleInterface( void );
+    ParticleInterface( Ogre::SceneManager *sceneManager, String name, String templateName );
+    ~ParticleInterface( void );
 
-  void inline addToSceneNode( Ogre::SceneNode* sceneNode ) { sceneNode_ = sceneNode; sceneNode_->attachObject(particleSystem_);};
-  void inline detachFromSceneNode( void ) { sceneNode_->detachObject(particleSystem_); sceneNode_ = NULL;};
+    void inline addToSceneNode( Ogre::SceneNode* sceneNode ) { sceneNode_ = sceneNode; sceneNode_->attachObject(particleSystem_);};
+    void inline detachFromSceneNode( void ) { sceneNode_->detachObject(particleSystem_); sceneNode_ = NULL;};
 
-  Ogre::ParticleEmitter* getEmitter ( int emitterNr );
-  void newEmitter ( void );
+    Ogre::ParticleEmitter* getEmitter ( int emitterNr );
+    void newEmitter ( void );
 
-  Ogre::Vector3 getPositionOfEmitter ( int emitterNr );
-  inline void setPositionOfEmitter ( int emitterNr, Ogre::Vector3 position ) { particleSystem_->getEmitter(emitterNr)->setPosition(position); };
+    Vector3 getPositionOfEmitter ( int emitterNr );
+    inline void setPositionOfEmitter ( int emitterNr, Vector3 position ) { particleSystem_->getEmitter(emitterNr)->setPosition(position); };
 
-  inline Ogre::Vector3 getDirection ( void ) { return particleSystem_->getEmitter(0)->getDirection(); };
-  void setDirection ( Ogre::Vector3 direction );
+    inline Vector3 getDirection ( void ) { return particleSystem_->getEmitter(0)->getDirection(); };
+    void setDirection ( Vector3 direction );
 
-  inline Ogre::Real getVelocity() {return velocity_; };
-  void setVelocity( Ogre::Real v );
+    inline Real getVelocity() {return velocity_; };
+    void setVelocity( Real v );
 
-  inline int getRate() { return rate_; };
-  void setRate( int r );
+    inline int getRate() { return rate_; };
+    void setRate( int r );
 
-  inline Ogre::Real getDistance() { return distance_; };
-  void setDistance( Ogre::Real d );
+    inline Real getDistance() { return distance_; };
+    void setDistance( Real d );
 
-  inline Ogre::ColourValue getColour( void ) {return colour_;};
-  void setColour( Ogre::ColourValue colour );
+    inline ColourValue getColour( void ) {return colour_;};
+    void setColour( ColourValue colour );
 
-  void switchEnable();
+    void switchEnable();
 
-  inline Ogre::ParticleSystem* getParticleSystem() { return this->particleSystem_; };
+    inline Ogre::ParticleSystem* getParticleSystem() { return this->particleSystem_; };
 
- private:
-  Ogre::SceneNode *sceneNode_;
-  Ogre::SceneManager *sceneManager_;
-  Ogre::ParticleSystem *particleSystem_;
-  Ogre::Real distance_;
-  Ogre::Real velocity_;
-  int rate_;
-  Ogre::ColourValue colour_;
-  int numberOfEmitters_;
+  private:
+    Ogre::SceneNode *sceneNode_;
+    Ogre::SceneManager *sceneManager_;
+    Ogre::ParticleSystem *particleSystem_;
+    Real distance_;
+    Real velocity_;
+    int rate_;
+    ColourValue colour_;
+    int numberOfEmitters_;
 
-  void standardizeEmitters();
-};
+    void standardizeEmitters();
+  };
 
 }
+
 #endif /* _ParticleInterface_H__ */
Index: code/branches/FICN/visual_studio/FICN.sln
===================================================================
--- code/branches/FICN/visual_studio/FICN.sln	(revision 707)
+++ code/branches/FICN/visual_studio/FICN.sln	(revision 708)
@@ -23,8 +23,8 @@
 	EndProjectSection
 	ProjectSection(ProjectDependencies) = postProject
+		{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}
 		{4733BD1A-E04C-458D-8BFB-5010250EA497} = {4733BD1A-E04C-458D-8BFB-5010250EA497}
-		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
-		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
-		{35575B59-E1AE-40E8-89C4-2862B5B09B68} = {35575B59-E1AE-40E8-89C4-2862B5B09B68}
 		{E283910F-F911-40FB-A09D-D025CA821912} = {E283910F-F911-40FB-A09D-D025CA821912}
 	EndProjectSection
@@ -42,6 +42,6 @@
 	EndProjectSection
 	ProjectSection(ProjectDependencies) = postProject
+		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC} = {2240ECD7-2F48-4431-8E1B-25466A384CCC}
-		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
 	EndProjectSection
 EndProject
@@ -50,4 +50,13 @@
 		Debug.AspNetCompiler.Debug = "True"
 		Release.AspNetCompiler.Debug = "False"
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestProj", "testproj.vcproj", "{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}"
+	ProjectSection(WebsiteProperties) = preProject
+		Debug.AspNetCompiler.Debug = "True"
+		Release.AspNetCompiler.Debug = "False"
+	EndProjectSection
+	ProjectSection(ProjectDependencies) = postProject
+		{271715F3-5B90-4110-A552-70C788084A86} = {271715F3-5B90-4110-A552-70C788084A86}
 	EndProjectSection
 EndProject
@@ -82,4 +91,6 @@
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.ActiveCfg = Release|Win32
 		{2240ECD7-2F48-4431-8E1B-25466A384CCC}.Release|Win32.Build.0 = Release|Win32
+		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Debug|Win32.ActiveCfg = Debug|Win32
+		{97B226C5-8FD9-4A1E-B50B-5CBF79CF46F5}.Release|Win32.ActiveCfg = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: code/branches/FICN/visual_studio/audio.vcproj
===================================================================
--- code/branches/FICN/visual_studio/audio.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/audio.vcproj	(revision 708)
@@ -177,10 +177,4 @@
 			</File>
 		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
 	</Files>
 	<Globals>
Index: code/branches/FICN/visual_studio/base_properties.vsprops
===================================================================
--- code/branches/FICN/visual_studio/base_properties.vsprops	(revision 707)
+++ code/branches/FICN/visual_studio/base_properties.vsprops	(revision 708)
@@ -11,5 +11,5 @@
 		AdditionalIncludeDirectories="&quot;$(SolutionDir)\..\src&quot;;&quot;$(OGRE_HOME)\Dependencies\include&quot;;&quot;$(OGRE_HOME)\OgreMain\include&quot;;&quot;$(ORXONOX_HOME)\dependencies\include&quot;"
 		PreprocessorDefinitions="WIN32;__WIN32__;_WIN32;BOOST_ALL_DYN_LINK"
-		WarningLevel="2"
+		WarningLevel="3"
 		Detect64BitPortabilityProblems="true"
 		DebugInformationFormat="3"
Index: code/branches/FICN/visual_studio/base_properties_release.vsprops
===================================================================
--- code/branches/FICN/visual_studio/base_properties_release.vsprops	(revision 707)
+++ code/branches/FICN/visual_studio/base_properties_release.vsprops	(revision 708)
@@ -17,4 +17,5 @@
 		Name="VCLinkerTool"
 		LinkIncremental="1"
+		GenerateDebugInformation="true"
 		OptimizeReferences="2"
 		EnableCOMDATFolding="2"
Index: code/branches/FICN/visual_studio/benixonox.vcproj
===================================================================
--- code/branches/FICN/visual_studio/benixonox.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/benixonox.vcproj	(revision 708)
@@ -177,8 +177,4 @@
 				>
 			</File>
-			<File
-				RelativePath="..\src\orxonox\SpaceshipSteering.cc"
-				>
-			</File>
 			<Filter
 				Name="hud"
@@ -187,22 +183,4 @@
 					RelativePath="..\src\orxonox\hud\HUD.cc"
 					>
-					<FileConfiguration
-						Name="Debug|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)\$(InputName)1.obj"
-							XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
-						/>
-					</FileConfiguration>
-					<FileConfiguration
-						Name="Release|Win32"
-						>
-						<Tool
-							Name="VCCLCompilerTool"
-							ObjectFile="$(IntDir)\$(InputName)1.obj"
-							XMLDocumentationFileName="$(IntDir)\$(InputName)1.xdc"
-						/>
-					</FileConfiguration>
 				</File>
 			</Filter>
@@ -310,16 +288,4 @@
 			>
 			<File
-				RelativePath="..\src\orxonox\AIClass.h"
-				>
-			</File>
-			<File
-				RelativePath="..\src\orxonox\Arrival.h"
-				>
-			</File>
-			<File
-				RelativePath="..\src\orxonox\Flocking.h"
-				>
-			</File>
-			<File
 				RelativePath="..\src\orxonox\GraphicsEngine.h"
 				>
@@ -339,8 +305,4 @@
 			<File
 				RelativePath="..\src\orxonox\OrxonoxPrereqs.h"
-				>
-			</File>
-			<File
-				RelativePath="..\src\orxonox\SpaceshipSteering.h"
 				>
 			</File>
@@ -461,4 +423,28 @@
 				>
 				<File
+					RelativePath="..\src\misc\ColourValue.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Math.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Matrix3.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Quaternion.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Sleep.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\String.h"
+					>
+				</File>
+				<File
 					RelativePath="..\src\misc\String2Number.h"
 					>
@@ -466,4 +452,16 @@
 				<File
 					RelativePath="..\src\misc\Tokenizer.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Vector2.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Vector3.h"
+					>
+				</File>
+				<File
+					RelativePath="..\src\misc\Vector4.h"
 					>
 				</File>
@@ -476,5 +474,49 @@
 			>
 			<File
+				RelativePath="..\bin\media.cfg"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\ogre.cfg"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\Ogre.log"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\orxonox.ini"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\orxonox.log"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\plugins.cfg"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\plugins_d.cfg"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\quake3settings.cfg"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\resources.cfg"
+				>
+			</File>
+			<File
 				RelativePath="..\bin\levels\sample.oxw"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\translation_default.lang"
+				>
+			</File>
+			<File
+				RelativePath="..\bin\translation_german.lang"
 				>
 			</File>
Index: code/branches/FICN/visual_studio/core.vcproj
===================================================================
--- code/branches/FICN/visual_studio/core.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/core.vcproj	(revision 708)
@@ -54,4 +54,5 @@
 				Name="VCLinkerTool"
 				AdditionalDependencies="OgreMain_d.lib"
+				OutputFile="$(OutDir)\$(ProjectName)_d.dll"
 			/>
 			<Tool
@@ -183,4 +184,8 @@
 			</File>
 			<File
+				RelativePath="..\src\orxonox\core\Language.cc"
+				>
+			</File>
+			<File
 				RelativePath="..\src\orxonox\core\MetaObjectList.cc"
 				>
@@ -213,4 +218,8 @@
 			</File>
 			<File
+				RelativePath="..\src\orxonox\core\ColourValue.h"
+				>
+			</File>
+			<File
 				RelativePath="..\src\orxonox\core\ConfigValueContainer.h"
 				>
@@ -253,4 +262,8 @@
 			</File>
 			<File
+				RelativePath="..\src\orxonox\core\Language.h"
+				>
+			</File>
+			<File
 				RelativePath="..\src\orxonox\core\MetaObjectList.h"
 				>
@@ -272,10 +285,4 @@
 				>
 			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
 		</Filter>
 	</Files>
Index: code/branches/FICN/visual_studio/loader.vcproj
===================================================================
--- code/branches/FICN/visual_studio/loader.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/loader.vcproj	(revision 708)
@@ -153,10 +153,4 @@
 			</File>
 		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
 	</Files>
 	<Globals>
Index: code/branches/FICN/visual_studio/network.vcproj
===================================================================
--- code/branches/FICN/visual_studio/network.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/network.vcproj	(revision 708)
@@ -235,10 +235,4 @@
 			</File>
 		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
 	</Files>
 	<Globals>
Index: code/branches/FICN/visual_studio/tinyxml.vcproj
===================================================================
--- code/branches/FICN/visual_studio/tinyxml.vcproj	(revision 707)
+++ code/branches/FICN/visual_studio/tinyxml.vcproj	(revision 708)
@@ -163,10 +163,4 @@
 			</File>
 		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
 	</Files>
 	<Globals>
