Index: code/trunk/src/orxonox/controllers/AIController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/AIController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/AIController.cc	(revision 9667)
@@ -39,7 +39,7 @@
     const float AIController::ACTION_INTERVAL = 1.0f;
 
-    CreateFactory(AIController);
-
-    AIController::AIController(BaseObject* creator) : ArtificialController(creator)
+    RegisterClass(AIController);
+
+    AIController::AIController(Context* context) : ArtificialController(context)
     {
         RegisterObject(AIController);
Index: code/trunk/src/orxonox/controllers/AIController.h
===================================================================
--- code/trunk/src/orxonox/controllers/AIController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/AIController.h	(revision 9667)
@@ -41,5 +41,5 @@
     {
         public:
-            AIController(BaseObject* creator);
+            AIController(Context* context);
             virtual ~AIController();
 
Index: code/trunk/src/orxonox/controllers/ArtificialController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/ArtificialController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/ArtificialController.cc	(revision 9667)
@@ -45,5 +45,7 @@
     SetConsoleCommand("ArtificialController", "setbotlevel",      &ArtificialController::setAllBotLevel);
 
-    ArtificialController::ArtificialController(BaseObject* creator) : FormationController(creator)
+    RegisterClass(ArtificialController);
+
+    ArtificialController::ArtificialController(Context* context) : FormationController(context)
     {
         RegisterObject(ArtificialController);
Index: code/trunk/src/orxonox/controllers/ArtificialController.h
===================================================================
--- code/trunk/src/orxonox/controllers/ArtificialController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/ArtificialController.h	(revision 9667)
@@ -39,5 +39,5 @@
     {
         public:
-            ArtificialController(BaseObject* creator);
+            ArtificialController(Context* context);
             virtual ~ArtificialController();
 
Index: code/trunk/src/orxonox/controllers/Controller.cc
===================================================================
--- code/trunk/src/orxonox/controllers/Controller.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/Controller.cc	(revision 9667)
@@ -33,7 +33,7 @@
 namespace orxonox
 {
-    CreateUnloadableFactory(Controller);
+    RegisterUnloadableClass(Controller);
 
-    Controller::Controller(BaseObject* creator) : BaseObject(creator)
+    Controller::Controller(Context* context) : BaseObject(context)
     {
         RegisterObject(Controller);
Index: code/trunk/src/orxonox/controllers/Controller.h
===================================================================
--- code/trunk/src/orxonox/controllers/Controller.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/Controller.h	(revision 9667)
@@ -42,5 +42,5 @@
 
         public:
-            Controller(BaseObject* creator);
+            Controller(Context* context);
             virtual ~Controller();
 
Index: code/trunk/src/orxonox/controllers/DroneController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/DroneController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/DroneController.cc	(revision 9667)
@@ -41,9 +41,9 @@
         Constructor.
     */
-    CreateFactory(DroneController);
+    RegisterClass(DroneController);
 
     const float DroneController::ACTION_INTERVAL = 1.0f;
 
-    DroneController::DroneController(BaseObject* creator) : ArtificialController(creator)
+    DroneController::DroneController(Context* context) : ArtificialController(context)
     {
         RegisterObject(DroneController);
Index: code/trunk/src/orxonox/controllers/DroneController.h
===================================================================
--- code/trunk/src/orxonox/controllers/DroneController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/DroneController.h	(revision 9667)
@@ -33,5 +33,5 @@
 
 #include "AIController.h"
-#include "core/WeakPtr.h"
+#include "core/object/WeakPtr.h"
 #include "tools/interfaces/Tickable.h"
 
@@ -50,5 +50,5 @@
     {
         public:
-            DroneController(BaseObject* creator);
+            DroneController(Context* context);
             virtual ~DroneController();
 
Index: code/trunk/src/orxonox/controllers/FormationController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/FormationController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/FormationController.cc	(revision 9667)
@@ -56,6 +56,5 @@
     SetConsoleCommand("FormationController", "formationsize",    &FormationController::formationsize);
 
-
-
+    RegisterClass(FormationController);
 
     static const unsigned int STANDARD_MAX_FORMATION_SIZE = 9;
@@ -69,5 +68,5 @@
     static const float ROTATEFACTOR_FREE = 0.8f;
 
-    FormationController::FormationController(BaseObject* creator) : Controller(creator)
+    FormationController::FormationController(Context* context) : Controller(context)
     {
         RegisterObject(FormationController);
Index: code/trunk/src/orxonox/controllers/FormationController.h
===================================================================
--- code/trunk/src/orxonox/controllers/FormationController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/FormationController.h	(revision 9667)
@@ -33,8 +33,7 @@
 
 #include <vector>
-#include "core/Super.h"
+#include "core/class/Super.h"
 
 #include "util/Math.h"
-#include "core/OrxonoxClass.h"
 #include "controllers/Controller.h"
 #include "worldentities/ControllableEntity.h"
@@ -47,5 +46,5 @@
 
       public:
-      FormationController(BaseObject* creator);
+      FormationController(Context* context);
 
       virtual ~FormationController();
Index: code/trunk/src/orxonox/controllers/HumanController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/HumanController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/HumanController.cc	(revision 9667)
@@ -66,10 +66,10 @@
     SetConsoleCommand("HumanController", "myposition",             &HumanController::myposition    ).addShortcut();
 
-    CreateUnloadableFactory(HumanController);
+    RegisterUnloadableClass(HumanController);
 
     HumanController* HumanController::localController_s = 0;
     /*static*/ const float HumanController::BOOSTING_TIME = 0.1f;
 
-    HumanController::HumanController(BaseObject* creator) : FormationController(creator)
+    HumanController::HumanController(Context* context) : FormationController(context)
     {
         RegisterObject(HumanController);
Index: code/trunk/src/orxonox/controllers/HumanController.h
===================================================================
--- code/trunk/src/orxonox/controllers/HumanController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/HumanController.h	(revision 9667)
@@ -44,5 +44,5 @@
     { // tolua_export
         public:
-            HumanController(BaseObject* creator);
+            HumanController(Context* context);
             virtual ~HumanController();
 
Index: code/trunk/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/NewHumanController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/NewHumanController.cc	(revision 9667)
@@ -56,10 +56,10 @@
     SetConsoleCommand("NewHumanController", "unfire",     &NewHumanController::unfire    ).keybindMode(KeybindMode::OnRelease).addShortcut();
 
-    CreateUnloadableFactory(NewHumanController);
+    RegisterUnloadableClass(NewHumanController);
 
     NewHumanController* NewHumanController::localController_s = 0;
 
-    NewHumanController::NewHumanController(BaseObject* creator)
-        : HumanController(creator)
+    NewHumanController::NewHumanController(Context* context)
+        : HumanController(context)
         , crossHairOverlay_(NULL)
         , centerOverlay_(NULL)
@@ -98,5 +98,5 @@
         if (GameMode::showsGraphics())
         {
-            crossHairOverlay_ = new OrxonoxOverlay(this);
+            crossHairOverlay_ = new OrxonoxOverlay(this->getContext());
             crossHairOverlay_->setBackgroundMaterial("Orxonox/Crosshair3");
             crossHairOverlay_->setSize(Vector2(overlaySize_, overlaySize_));
@@ -104,5 +104,5 @@
             //crossHairOverlay_->setAspectCorrection(true); not working
 
-            centerOverlay_ = new OrxonoxOverlay(this);
+            centerOverlay_ = new OrxonoxOverlay(this->getContext());
             centerOverlay_->setBackgroundMaterial("Orxonox/CenterOverlay");
             centerOverlay_->setSize(Vector2(overlaySize_ * 2.5f, overlaySize_ * 2.5f));
@@ -112,5 +112,5 @@
             if (showDamageOverlay_)
             {
-                damageOverlayTop_ = new OrxonoxOverlay(this);
+                damageOverlayTop_ = new OrxonoxOverlay(this->getContext());
                 damageOverlayTop_->setBackgroundMaterial("Orxonox/DamageOverlayTop");
                 damageOverlayTop_->setSize(Vector2(overlaySize_ * 2.5f, overlaySize_ * 2.5f));
@@ -118,5 +118,5 @@
                 damageOverlayTop_->hide();
 
-                damageOverlayRight_ = new OrxonoxOverlay(this);
+                damageOverlayRight_ = new OrxonoxOverlay(this->getContext());
                 damageOverlayRight_->setBackgroundMaterial("Orxonox/DamageOverlayRight");
                 damageOverlayRight_->setSize(Vector2(overlaySize_ * 2.5f, overlaySize_ * 2.5f));
@@ -124,5 +124,5 @@
                 damageOverlayRight_->hide();
 
-                damageOverlayBottom_ = new OrxonoxOverlay(this);
+                damageOverlayBottom_ = new OrxonoxOverlay(this->getContext());
                 damageOverlayBottom_->setBackgroundMaterial("Orxonox/DamageOverlayBottom");
                 damageOverlayBottom_->setSize(Vector2(overlaySize_ * 2.5f, overlaySize_ * 2.5f));
@@ -130,5 +130,5 @@
                 damageOverlayBottom_->hide();
 
-                damageOverlayLeft_ = new OrxonoxOverlay(this);
+                damageOverlayLeft_ = new OrxonoxOverlay(this->getContext());
                 damageOverlayLeft_->setBackgroundMaterial("Orxonox/DamageOverlayLeft");
                 damageOverlayLeft_->setSize(Vector2(overlaySize_ * 2.5f, overlaySize_ * 2.5f));
@@ -139,5 +139,5 @@
             if (showArrows_)
             {
-                arrowsOverlay1_ = new OrxonoxOverlay(this);
+                arrowsOverlay1_ = new OrxonoxOverlay(this->getContext());
                 arrowsOverlay1_->setBackgroundMaterial("Orxonox/DirectionArrows1");
                 arrowsOverlay1_->setSize(Vector2(0.02727f, 0.36f * arrowsSize_));
@@ -146,5 +146,5 @@
                 arrowsOverlay1_->hide();
 
-                arrowsOverlay2_ = new OrxonoxOverlay(this);
+                arrowsOverlay2_ = new OrxonoxOverlay(this->getContext());
                 arrowsOverlay2_->setBackgroundMaterial("Orxonox/DirectionArrows2");
                 arrowsOverlay2_->setSize(Vector2(0.02727f, 0.59f * arrowsSize_));
@@ -153,5 +153,5 @@
                 arrowsOverlay2_->hide();
 
-                arrowsOverlay3_ = new OrxonoxOverlay(this);
+                arrowsOverlay3_ = new OrxonoxOverlay(this->getContext());
                 arrowsOverlay3_->setBackgroundMaterial("Orxonox/DirectionArrows3");
                 arrowsOverlay3_->setSize(Vector2(0.02727f, 0.77f * arrowsSize_));
@@ -160,5 +160,5 @@
                 arrowsOverlay3_->hide();
 
-                arrowsOverlay4_ = new OrxonoxOverlay(this);
+                arrowsOverlay4_ = new OrxonoxOverlay(this->getContext());
                 arrowsOverlay4_->setBackgroundMaterial("Orxonox/DirectionArrows4");
                 arrowsOverlay4_->setSize(Vector2(0.02727f, arrowsSize_));
Index: code/trunk/src/orxonox/controllers/NewHumanController.h
===================================================================
--- code/trunk/src/orxonox/controllers/NewHumanController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/NewHumanController.h	(revision 9667)
@@ -42,5 +42,5 @@
     {
         public:
-            NewHumanController(BaseObject* creator);
+            NewHumanController(Context* context);
             virtual ~NewHumanController();
 
Index: code/trunk/src/orxonox/controllers/ScriptController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/ScriptController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/ScriptController.cc	(revision 9667)
@@ -32,7 +32,7 @@
 namespace orxonox
 {
-    CreateFactory(ScriptController);
+    RegisterClass(ScriptController);
 
-    ScriptController::ScriptController(BaseObject* creator) : ArtificialController(creator)
+    ScriptController::ScriptController(Context* context) : ArtificialController(context)
     {
         RegisterObject(ScriptController);
Index: code/trunk/src/orxonox/controllers/ScriptController.h
===================================================================
--- code/trunk/src/orxonox/controllers/ScriptController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/ScriptController.h	(revision 9667)
@@ -38,5 +38,5 @@
     {
         public:
-            ScriptController(BaseObject* creator);
+            ScriptController(Context* context);
             virtual ~ScriptController() { }
 
Index: code/trunk/src/orxonox/controllers/WaypointController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/WaypointController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/WaypointController.cc	(revision 9667)
@@ -34,7 +34,7 @@
 namespace orxonox
 {
-    CreateFactory(WaypointController);
+    RegisterClass(WaypointController);
 
-    WaypointController::WaypointController(BaseObject* creator) : ArtificialController(creator)
+    WaypointController::WaypointController(Context* context) : ArtificialController(context)
     {
         RegisterObject(WaypointController);
Index: code/trunk/src/orxonox/controllers/WaypointController.h
===================================================================
--- code/trunk/src/orxonox/controllers/WaypointController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/WaypointController.h	(revision 9667)
@@ -41,5 +41,5 @@
     {
         public:
-            WaypointController(BaseObject* creator);
+            WaypointController(Context* context);
             virtual ~WaypointController();
 
Index: code/trunk/src/orxonox/controllers/WaypointPatrolController.cc
===================================================================
--- code/trunk/src/orxonox/controllers/WaypointPatrolController.cc	(revision 9666)
+++ code/trunk/src/orxonox/controllers/WaypointPatrolController.cc	(revision 9667)
@@ -36,7 +36,7 @@
 namespace orxonox
 {
-    CreateFactory(WaypointPatrolController);
+    RegisterClass(WaypointPatrolController);
 
-    WaypointPatrolController::WaypointPatrolController(BaseObject* creator) : WaypointController(creator)
+    WaypointPatrolController::WaypointPatrolController(Context* context) : WaypointController(context)
     {
         RegisterObject(WaypointPatrolController);
Index: code/trunk/src/orxonox/controllers/WaypointPatrolController.h
===================================================================
--- code/trunk/src/orxonox/controllers/WaypointPatrolController.h	(revision 9666)
+++ code/trunk/src/orxonox/controllers/WaypointPatrolController.h	(revision 9667)
@@ -40,5 +40,5 @@
     {
         public:
-            WaypointPatrolController(BaseObject* creator);
+            WaypointPatrolController(Context* context);
             virtual ~WaypointPatrolController() {}
 
