Index: branches/new_class_id/src/lib/graphics/importer/resource_texture.cc
===================================================================
--- branches/new_class_id/src/lib/graphics/importer/resource_texture.cc	(revision 9790)
+++ branches/new_class_id/src/lib/graphics/importer/resource_texture.cc	(revision 9791)
@@ -8,5 +8,5 @@
     : NewResource(&ResourceTexture::type)
 {
-  NewResource::StorePointer* ptr = this->acquireResource(imageName + ',' + "TEST");
+  Resources::StorePointer* ptr = this->acquireResource(imageName + ',' + "TEST");
 
   if (ptr)
@@ -20,10 +20,10 @@
     std::string fileName = this->NewResource::locateFile(imageName);
     this->Texture::loadImage(fileName, target);
-    this->NewResource::addResource(new ResourceTexture::TextureResourcePointer(imageName + ',' + "TEST", KeepLevel(0), this->Texture::dataPointer()));
+    this->NewResource::addResource(new ResourceTexture::TextureResourcePointer(imageName + ',' + "TEST", Resources::KeepLevel(0), this->Texture::dataPointer()));
   }
 }
 
 
-NewResource::Type ResourceTexture::type(Texture::staticClassID());
+Resources::Type ResourceTexture::type(Texture::staticClassID());
 
 
@@ -31,6 +31,6 @@
 
 
-ResourceTexture::TextureResourcePointer::TextureResourcePointer(const std::string& loadString, const NewResource::KeepLevel& keepLevel, const TextureData::Pointer& data)
-    : NewResource::StorePointer(loadString, keepLevel) , pointer(data)
+ResourceTexture::TextureResourcePointer::TextureResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const TextureData::Pointer& data)
+    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
 {}
 
Index: branches/new_class_id/src/lib/graphics/importer/resource_texture.h
===================================================================
--- branches/new_class_id/src/lib/graphics/importer/resource_texture.h	(revision 9790)
+++ branches/new_class_id/src/lib/graphics/importer/resource_texture.h	(revision 9791)
@@ -19,8 +19,8 @@
 
 private:
-class TextureResourcePointer : public NewResource::StorePointer
+class TextureResourcePointer : public Resources::StorePointer
   {
   public:
-    TextureResourcePointer(const std::string& loadString, const NewResource::KeepLevel& keepLevel, const TextureData::Pointer& data);
+    TextureResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const TextureData::Pointer& data);
     inline const TextureData::Pointer& ptr() const { return pointer; }
   private:
@@ -29,5 +29,5 @@
 
 private:
-  static NewResource::Type type;
+  static Resources::Type type;
 };
 
Index: branches/new_class_id/src/lib/util/loading/new_resource_manager.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/new_resource_manager.cc	(revision 9790)
+++ branches/new_class_id/src/lib/util/loading/new_resource_manager.cc	(revision 9791)
@@ -22,5 +22,10 @@
 #include <assert.h>
 
-ObjectListDefinition(NewResourceManager);
+//ObjectListDefinition(NewResourceManager);
+
+
+//! Singleton Reference to the NewResourceManager
+NewResourceManager* NewResourceManager::_singletonRef = NULL;
+
 
 /**
@@ -29,13 +34,10 @@
 NewResourceManager::NewResourceManager ()
 {
-  this->registerObject(this, NewResourceManager::_objectList);
+//  this->registerObject(this, NewResourceManager::_objectList);
   this->setName("NewResourceManager");
 
   //this->dataDir = "./";
-  this->tryDataDir("./data");
 }
 
-//! Singleton Reference to the NewResourceManager
-NewResourceManager* NewResourceManager::singletonRef = NULL;
 
 /**
@@ -50,7 +52,52 @@
 //     PRINTF(1)("Not removed all Resources, since there are still %d resources registered\n", this->resourceList.size());
 
-  NewResourceManager::singletonRef = NULL;
+  NewResourceManager::_singletonRef = NULL;
 }
 
+
+
+
+void NewResourceManager::registerType(Resources::Type* type)
+{
+  if(type->id() == -1)
+  {
+    type->setID(this->_resourceTypes.size());
+    this->_resourceTypes.push_back(type);
+  }
+}
+
+void NewResourceManager::setMainGlobalPath(const Directory& directory)
+{
+  this->_mainGlobalPath = directory;
+  this->_mainGlobalPath.open();
+}
+
+void NewResourceManager::addGlobalPath(const Directory& directory)
+{
+  std::vector<Directory>::const_iterator it = std::find(this->_globalPaths.begin(), this->_globalPaths.end(), directory);
+  if (it == this->_globalPaths.end())
+    this->_globalPaths.push_back(directory);
+}
+
+
+bool NewResourceManager::addResourcePath(const std::string& resourceName, const std::string& pathName)
+{
+  std::vector<Resources::Type*>::iterator it;
+  for (it = this->_resourceTypes.begin(); it != this->_resourceTypes.end(); ++it)
+    if (*(*it) == resourceName)
+      return (*it)->addResourcePath(pathName);
+  PRINTF(2)("ResourcePath %s could not be added to the ResourceType %s\n", pathName.c_str(), resourceName.c_str());
+  return false;
+}
+
+bool NewResourceManager::addResourceSubPath(const std::string& resourceName, const std::string& pathName)
+{
+  std::vector<Resources::Type*>::iterator it;
+  for (it = this->_resourceTypes.begin(); it != this->_resourceTypes.end(); ++it)
+    if (*(*it) == resourceName)
+      return (*it)->addResourceSubPath(pathName);
+  PRINTF(2)("ResourceSubPath %s could not be added to the ResourceType %s\n", pathName.c_str(), resourceName.c_str());
+  return false;
+}
 
 
@@ -63,4 +110,8 @@
   PRINT(0)("= RESOURCE-MANAGER DEBUG INFORMATION =\n");
   PRINT(0)("======================================\n");
+  PRINT(0)("Listing %d Types: \n", this->_resourceTypes.size());
+  std::vector<Resources::Type*>::const_iterator it;
+  for (it = this->_resourceTypes.begin(); it != this->_resourceTypes.end(); ++it)
+    PRINT(0)("ResourceType '%s'\n", (*it)->storedClassID().name().c_str());
 
   PRINT(0)("==================================RM==\n");
Index: branches/new_class_id/src/lib/util/loading/new_resource_manager.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/new_resource_manager.h	(revision 9790)
+++ branches/new_class_id/src/lib/util/loading/new_resource_manager.h	(revision 9791)
@@ -12,11 +12,25 @@
 class NewResourceManager : public BaseObject
 {
-  ObjectListDeclaration(NewResourceManager);
+//  ObjectListDeclaration(NewResourceManager);
 public:
   virtual ~NewResourceManager();
   /** @returns a Pointer to the only object of this Class */
-  inline static NewResourceManager* getInstance() { if (!singletonRef) singletonRef = new NewResourceManager();  return singletonRef; };
+  inline static NewResourceManager* getInstance() { if (!_singletonRef) _singletonRef = new NewResourceManager();  return _singletonRef; };
 
-  bool tryDataDir(const std::string& dataDir);
+
+  void setMainGlobalPath(const Directory& directory);
+  void addGlobalPath(const Directory& directory);
+
+  bool addResourcePath(const std::string& resourceName, const std::string& pathName);
+  bool addResourceSubPath(const std::string& resourceName, const std::string& pathName);
+  void registerType(Resources::Type* type);
+
+
+  const std::vector<Resources::Type*> resourceTypes() const { return _resourceTypes; };
+  const Directory& mainGlobalPath() const { return _mainGlobalPath; };
+  /** @returns all global paths without mainGlobalPath */
+  const std::vector<Directory>& globalPaths() const { return _globalPaths; };
+
+
   bool verifyDataDir(const std::string& fileInside);
 
@@ -28,10 +42,15 @@
   static std::string getFullName(const std::string& fileName);
   static bool isInDataDir(const std::string& fileName);
-
 private:
   NewResourceManager();
 
 private:
-  static NewResourceManager*    singletonRef;       //!< singleton Reference
+  static NewResourceManager*       _singletonRef;       //!< singleton Reference
+
+  std::vector<Resources::Type*>    _resourceTypes;
+  //! GLOBALS
+  Directory                        _mainGlobalPath;
+  std::vector<Directory>           _globalPaths;
+
 
 };
Index: branches/new_class_id/src/lib/util/loading/resource.cc
===================================================================
--- branches/new_class_id/src/lib/util/loading/resource.cc	(revision 9790)
+++ branches/new_class_id/src/lib/util/loading/resource.cc	(revision 9791)
@@ -17,13 +17,9 @@
 
 #include "resource.h"
-#include "filesys/file.h"
+#include "new_resource_manager.h"
+
 #include "debug.h"
 
 ObjectListDefinition(NewResource);
-std::vector<NewResource::Type*>    NewResource::_resourceTypes;
-
-//! GLOBALS
-Directory NewResource::_mainGlobalPath;
-std::vector<Directory>        NewResource::_globalPaths;
 
 
@@ -31,5 +27,5 @@
  * standard constructor
 */
-NewResource::NewResource (NewResource::Type* type)
+NewResource::NewResource (Resources::Type* type)
     : _pointer(NULL), _type(type)
 {
@@ -50,6 +46,6 @@
   if (File(fileName).exists())
     return fileName;
-  else if ((NewResource::_mainGlobalPath + File(fileName)).exists() )
-    return (NewResource::_mainGlobalPath + File(fileName)).name();
+  else if ((NewResourceManager::getInstance()->mainGlobalPath() + File(fileName)).exists() )
+    return (NewResourceManager::getInstance()->mainGlobalPath() + File(fileName)).name();
 
   printf("LOCATED %s\n", locateFileInSubDir(Directory("/home/bensch/svn/orxonox/data/"), fileName).c_str());
@@ -80,7 +76,7 @@
 
 
-NewResource::StorePointer* NewResource::acquireResource(const std::string& loadString)
+Resources::StorePointer* NewResource::acquireResource(const std::string& loadString)
 {
-  //const NewResource::Type* const type = NewResource::_resourceTypes[this->_type->id()];
+  //const Resources::Type* const type = Resources::_resourceTypes[this->_type->id()];
 
   for (unsigned int i = 0; i < _type->storedResources().size(); ++i)
@@ -93,71 +89,8 @@
 }
 
-void NewResource::setMainGlobalPath(const Directory& directory)
-{
-  NewResource::_mainGlobalPath = directory;
-  NewResource::_mainGlobalPath.open();
-}
 
-void NewResource::addGlobalPath(const Directory& directory)
-{
-  std::vector<Directory>::const_iterator it = std::find(NewResource::_globalPaths.begin(), NewResource::_globalPaths.end(), directory);
-  if (it == NewResource::_globalPaths.end())
-    NewResource::_globalPaths.push_back(directory);
-}
-
-
-
-void NewResource::addResource(NewResource::StorePointer* pointer)
+void NewResource::addResource(Resources::StorePointer* pointer)
 {
   this->_type->addResource(pointer);
-}
-
-
-void NewResource::registerType(NewResource::Type* type)
-{
-  NewResource::debug();
-  if(type->id() == -1)
-  {
-    NewResource::_resourceTypes.push_back(type);
-    type->setID(NewResource::_resourceTypes.size()-1);
-  }
-  NewResource::debug();
-}
-
-bool NewResource::addResourcePath(const std::string& resourceName, const std::string& pathName)
-{
-  std::vector<NewResource::Type*>::iterator it;
-  for (it = NewResource::_resourceTypes.begin(); it != NewResource::_resourceTypes.end(); ++it)
-    if (*(*it) == resourceName)
-      return (*it)->addResourcePath(pathName);
-  PRINTF(2)("ResourcePath %s could not be added to the ResourceType %s\n", pathName.c_str(), resourceName.c_str());
-  return false;
-}
-
-bool NewResource::addResourceSubPath(const std::string& resourceName, const std::string& pathName)
-{
-  std::vector<NewResource::Type*>::iterator it;
-  for (it = NewResource::_resourceTypes.begin(); it != NewResource::_resourceTypes.end(); ++it)
-    if (*(*it) == resourceName)
-      return (*it)->addResourceSubPath(pathName);
-  PRINTF(2)("ResourceSubPath %s could not be added to the ResourceType %s\n", pathName.c_str(), resourceName.c_str());
-  return false;
-}
-
-
-
-void NewResource::debug()
-{
-  PRINT(0)("==================================\n");
-  PRINT(0)("DEBUG output for all Resources\n");
-  PRINT(0)("==================================\n");
-
-  PRINT(0)("Listing %d Types: \n", NewResource::_resourceTypes.size());
-  std::vector<NewResource::Type*>::iterator it;
-  for (it = NewResource::_resourceTypes.begin(); it != NewResource::_resourceTypes.end(); ++it)
-    PRINT(0)("ResourceType '%s'\n", (*it)->storedClassID().name().c_str());
-
-  PRINT(0)("==================================\n");
-
 }
 
@@ -166,6 +99,10 @@
 
 
-std::vector<std::string> NewResource::KeepLevel::_keepLevelNames;
-void NewResource::KeepLevel::defineKeepLevelName(unsigned int level, const std::string& name)
+
+///////////////////
+//// KEEPLEVEL ////
+///////////////////
+std::vector<std::string> Resources::KeepLevel::_keepLevelNames;
+void Resources::KeepLevel::defineKeepLevelName(unsigned int level, const std::string& name)
 {
   if (_keepLevelNames.size() <= level)
@@ -175,11 +112,24 @@
 
 
-NewResource::Type::Type(const ClassID& classID)
+///////////////////////
+//// STORE POINTER ////
+///////////////////////
+Resources::StorePointer::StorePointer(const std::string& loadString, const Resources::KeepLevel& keeplevel)
+  : _loadString(loadString), _keepLevel(keeplevel)
+{}
+
+
+
+
+//////////////
+//// TYPE ////
+//////////////
+Resources::Type::Type(const ClassID& classID)
     : _id(-1), _classID(classID)
 {
-  NewResource::registerType(this);
+  NewResourceManager::getInstance()->registerType(this);
 }
 
-void NewResource::Type::addResource(NewResource::StorePointer* resource)
+void Resources::Type::addResource(Resources::StorePointer* resource)
 {
   this->_storedResources.push_back(resource);
@@ -187,5 +137,5 @@
 }
 
-bool NewResource::Type::addResourcePath(const std::string& path)
+bool Resources::Type::addResourcePath(const std::string& path)
 {
   std::vector<Directory>::const_iterator it;
@@ -198,5 +148,5 @@
 }
 
-bool NewResource::Type::addResourceSubPath(const std::string& subPath)
+bool Resources::Type::addResourceSubPath(const std::string& subPath)
 {
   std::vector<Directory>::const_iterator it;
@@ -209,11 +159,5 @@
 
 
-
-NewResource::StorePointer::StorePointer(const std::string& loadString, const NewResource::KeepLevel& keeplevel)
-    : _loadString(loadString), _keepLevel(keeplevel)
-{}
-
-
-void NewResource::Type::setID(int id)
+void Resources::Type::setID(int id)
 {
   this->_id = id;
Index: branches/new_class_id/src/lib/util/loading/resource.h
===================================================================
--- branches/new_class_id/src/lib/util/loading/resource.h	(revision 9790)
+++ branches/new_class_id/src/lib/util/loading/resource.h	(revision 9791)
@@ -14,12 +14,6 @@
 #include "filesys/directory.h"
 
-//! A NewResource is an Object, that can be loaded from Disk
-/**
- *
- */
-class NewResource : virtual public BaseObject
+namespace Resources
 {
-  ObjectListDeclaration(NewResource);
-public:
   class KeepLevel
   {
@@ -35,18 +29,15 @@
   };
 
-
-protected:
   class StorePointer
   {
-  public:
-    StorePointer(const std::string& loadString, const NewResource::KeepLevel& keeplevel);
-    const std::string& loadString() const { return _loadString; };
-    const NewResource::KeepLevel& keepLevel() const { return _keepLevel; };
+    public:
+      StorePointer(const std::string& loadString, const Resources::KeepLevel& keeplevel);
+      const std::string& loadString() const { return _loadString; };
+      const Resources::KeepLevel& keepLevel() const { return _keepLevel; };
 
-  private:
-    std::string                 _loadString;             //!< An identifier, to match when loading a File.
-    NewResource::KeepLevel      _keepLevel;              //!< The Priority of this resource. (can only be increased, so none else will delete this)
+    private:
+      std::string                 _loadString;             //!< An identifier, to match when loading a File.
+      Resources::KeepLevel        _keepLevel;              //!< The Priority of this resource. (can only be increased, so none else will delete this)
   };
-
 
   class Type
@@ -67,8 +58,8 @@
     const std::vector<Directory>& resourcePaths() const { return _resourcePaths; };
     const std::vector<Directory>& resourceSubPaths() const { return _resourceSubPaths; };
-    const std::vector<NewResource::StorePointer*>& storedResources() const { return _storedResources; };
+    const std::vector<Resources::StorePointer*>& storedResources() const { return _storedResources; };
 
     void setID(int id);
-    void addResource(NewResource::StorePointer* resource);
+    void addResource(Resources::StorePointer* resource);
 
   private:
@@ -79,10 +70,18 @@
     std::vector<std::string>        _fileExtensions;
 
-    std::vector<NewResource::StorePointer*> _storedResources;
+    std::vector<Resources::StorePointer*> _storedResources;
   };
+}
 
+//! A NewResource is an Object, that can be loaded from Disk
+/**
+ *
+ */
+class NewResource : virtual public BaseObject
+{
+  ObjectListDeclaration(NewResource);
 
 public:
-  NewResource(NewResource::Type* type);
+  NewResource(Resources::Type* type);
   virtual ~NewResource();
 
@@ -94,16 +93,7 @@
 
 public:
-  static void setMainGlobalPath(const Directory& directory);
-  static void addGlobalPath(const Directory& directory);
-
-  static bool addResourcePath(const std::string& resourceName, const std::string& pathName);
-  static bool addResourceSubPath(const std::string& resourceName, const std::string& pathName);
-
-  static void registerType(NewResource::Type* type);
-
-  static void debug();
 protected:
-  NewResource::StorePointer* acquireResource(const std::string& loadString);
-  void addResource(NewResource::StorePointer* pointer);
+  Resources::StorePointer* acquireResource(const std::string& loadString);
+  void addResource(Resources::StorePointer* pointer);
 
 private:
@@ -111,13 +101,6 @@
 
 private:
-  NewResource::StorePointer*       _pointer;                         //!< Virtual Pointer to the ResourceData.
-  NewResource::Type*               _type;                            //!< Type of the NewResource.
-
-
-  static std::vector<NewResource::Type*>  _resourceTypes;
-
-  //! GLOBALS
-  static Directory                       _mainGlobalPath;
-  static std::vector<Directory>          _globalPaths;
+  Resources::StorePointer*       _pointer;                         //!< Virtual Pointer to the ResourceData.
+  Resources::Type*               _type;                            //!< Type of the NewResource.
 };
 
Index: branches/new_class_id/src/orxonox.cc
===================================================================
--- branches/new_class_id/src/orxonox.cc	(revision 9790)
+++ branches/new_class_id/src/orxonox.cc	(revision 9791)
@@ -327,5 +327,5 @@
 
 //#include "util/loading/dynamic_loader.h"
-#include "loading/resource.h"
+#include "loading/new_resource_manager.h"
 /**
  * initializes and loads resource files
@@ -367,8 +367,7 @@
   }
 
-  NewResource::debug();
   //! @todo this is a hack and should be loadable
-  NewResource::addResourceSubPath("Texture", "maps");
-  NewResource::addResourceSubPath("Texture", "pictures");
+  NewResourceManager::getInstance()->addResourceSubPath("Texture", "maps");
+  NewResourceManager::getInstance()->addResourceSubPath("Texture", "pictures");
 
   //  DynamicLoader::loadDyLib("libtest.so");
