Index: code/trunk/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 9667)
@@ -41,5 +41,5 @@
 namespace orxonox
 {
-    CreateFactory(GlobalQuest);
+    RegisterClass(GlobalQuest);
 
     /**
@@ -47,5 +47,5 @@
         Constructor. Registers the object.
     */
-    GlobalQuest::GlobalQuest(BaseObject* creator) : Quest(creator)
+    GlobalQuest::GlobalQuest(Context* context) : Quest(context)
     {
         RegisterObject(GlobalQuest);
Index: code/trunk/src/modules/questsystem/GlobalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 9667)
@@ -90,5 +90,5 @@
     {
         public:
-            GlobalQuest(BaseObject* creator);
+            GlobalQuest(Context* context);
             virtual ~GlobalQuest();
 
Index: code/trunk/src/modules/questsystem/LocalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 9667)
@@ -41,5 +41,5 @@
 namespace orxonox
 {
-    CreateFactory(LocalQuest);
+    RegisterClass(LocalQuest);
 
     /**
@@ -47,5 +47,5 @@
         Constructor. Registers and initializes the object.
     */
-    LocalQuest::LocalQuest(BaseObject* creator) : Quest(creator)
+    LocalQuest::LocalQuest(Context* context) : Quest(context)
     {
         RegisterObject(LocalQuest);
Index: code/trunk/src/modules/questsystem/LocalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/LocalQuest.h	(revision 9667)
@@ -84,5 +84,5 @@
     {
         public:
-            LocalQuest(BaseObject* creator);
+            LocalQuest(Context* context);
             virtual ~LocalQuest();
 
Index: code/trunk/src/modules/questsystem/Quest.cc
===================================================================
--- code/trunk/src/modules/questsystem/Quest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/Quest.cc	(revision 9667)
@@ -45,9 +45,11 @@
 namespace orxonox
 {
+    RegisterAbstractClass(Quest).inheritsFrom(Class(QuestItem));
+
     /**
     @brief
         Constructor. Registers and initializes object.
     */
-    Quest::Quest(BaseObject* creator) : QuestItem(creator)
+    Quest::Quest(Context* context) : QuestItem(context)
     {
         RegisterObject(Quest);
Index: code/trunk/src/modules/questsystem/Quest.h
===================================================================
--- code/trunk/src/modules/questsystem/Quest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/Quest.h	(revision 9667)
@@ -82,5 +82,5 @@
     { // tolua_export
         public:
-            Quest(BaseObject* creator);
+            Quest(Context* context);
             virtual ~Quest();
 
Index: code/trunk/src/modules/questsystem/QuestDescription.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 9667)
@@ -44,5 +44,5 @@
 namespace orxonox
 {
-    CreateFactory(QuestDescription);
+    RegisterClass(QuestDescription);
 
     /*static*/ const std::string QuestDescription::SENDER = "questsystem";
@@ -52,5 +52,5 @@
         Constructor. Registers and initializes the object.
     */
-    QuestDescription::QuestDescription(BaseObject* creator) : BaseObject(creator)
+    QuestDescription::QuestDescription(Context* context) : BaseObject(context)
     {
         RegisterObject(QuestDescription);
Index: code/trunk/src/modules/questsystem/QuestDescription.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestDescription.h	(revision 9667)
@@ -64,5 +64,5 @@
 // tolua_end
         public:
-            QuestDescription(BaseObject* creator);
+            QuestDescription(Context* context);
             virtual ~QuestDescription();
 
Index: code/trunk/src/modules/questsystem/QuestEffect.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 9667)
@@ -37,4 +37,6 @@
 namespace orxonox
 {
+    RegisterAbstractClass(QuestEffect).inheritsFrom(Class(BaseObject));
+
     /**
     @brief
@@ -42,5 +44,5 @@
         Is not meant to be invoked directly, since this is only an interface.
     */
-    QuestEffect::QuestEffect(BaseObject* creator) : BaseObject(creator)
+    QuestEffect::QuestEffect(Context* context) : BaseObject(context)
     {
         RegisterObject(QuestEffect);
Index: code/trunk/src/modules/questsystem/QuestEffect.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffect.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestEffect.h	(revision 9667)
@@ -57,5 +57,5 @@
     {
         public:
-            QuestEffect(BaseObject* creator);
+            QuestEffect(Context* context);
             virtual ~QuestEffect();
 
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 9667)
@@ -45,5 +45,5 @@
 namespace orxonox
 {
-    CreateFactory(QuestEffectBeacon);
+    RegisterClass(QuestEffectBeacon);
 
     /**
@@ -51,5 +51,5 @@
         Constructor. Registers the object and initializes defaults.
     */
-    QuestEffectBeacon::QuestEffectBeacon(BaseObject* creator) : StaticEntity(creator)
+    QuestEffectBeacon::QuestEffectBeacon(Context* context) : StaticEntity(context)
     {
         RegisterObject(QuestEffectBeacon);
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 9667)
@@ -93,5 +93,5 @@
     {
         public:
-            QuestEffectBeacon(BaseObject* creator);
+            QuestEffectBeacon(Context* context);
             virtual ~QuestEffectBeacon();
 
Index: code/trunk/src/modules/questsystem/QuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestHint.cc	(revision 9667)
@@ -43,5 +43,5 @@
 namespace orxonox
 {
-    CreateFactory(QuestHint);
+    RegisterClass(QuestHint);
 
     /**
@@ -49,5 +49,5 @@
         Constructor. Registers the object.
     */
-    QuestHint::QuestHint(BaseObject* creator) : QuestItem(creator)
+    QuestHint::QuestHint(Context* context) : QuestItem(context)
     {
         RegisterObject(QuestHint);
Index: code/trunk/src/modules/questsystem/QuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestHint.h	(revision 9667)
@@ -82,5 +82,5 @@
 
         public:
-            QuestHint(BaseObject* creator);
+            QuestHint(Context* context);
             virtual ~QuestHint();
 
Index: code/trunk/src/modules/questsystem/QuestItem.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestItem.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestItem.cc	(revision 9667)
@@ -42,5 +42,5 @@
 {
 
-    CreateUnloadableFactory(QuestItem);
+    RegisterUnloadableClass(QuestItem);
 
     /**
@@ -48,5 +48,5 @@
         Constructor. Registers and initializes the object.
     */
-    QuestItem::QuestItem(BaseObject* creator) : BaseObject(creator)
+    QuestItem::QuestItem(Context* context) : BaseObject(context)
     {
         this->registered_ = false;
Index: code/trunk/src/modules/questsystem/QuestItem.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestItem.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestItem.h	(revision 9667)
@@ -60,5 +60,5 @@
 
         public:
-            QuestItem(BaseObject* creator);
+            QuestItem(Context* context);
             virtual ~QuestItem();
 
Index: code/trunk/src/modules/questsystem/QuestListener.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestListener.cc	(revision 9667)
@@ -42,5 +42,5 @@
 namespace orxonox
 {
-    CreateFactory(QuestListener);
+    RegisterClass(QuestListener);
 
     // Initialization of the static variables for the modes as strings.
@@ -54,5 +54,5 @@
         Constructor. Registers the object and initializes variables.
     */
-    QuestListener::QuestListener(BaseObject* creator) : BaseObject(creator)
+    QuestListener::QuestListener(Context* context) : BaseObject(context)
     {
         RegisterObject(QuestListener);
Index: code/trunk/src/modules/questsystem/QuestListener.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestListener.h	(revision 9667)
@@ -87,5 +87,5 @@
 
         public:
-            QuestListener(BaseObject* creator);
+            QuestListener(Context* context);
             virtual ~QuestListener();
 
Index: code/trunk/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestManager.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestManager.cc	(revision 9667)
@@ -38,5 +38,4 @@
 #include "util/ScopedSingletonManager.h"
 #include "core/command/ConsoleCommand.h"
-#include "core/CoreIncludes.h"
 #include "core/GUIManager.h"
 #include "core/LuaState.h"
@@ -60,5 +59,4 @@
     QuestManager::QuestManager()
     {
-        RegisterRootObject(QuestManager);
         orxout(internal_info, context::quests) << "QuestManager created." << endl;
     }
Index: code/trunk/src/modules/questsystem/QuestManager.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestManager.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/QuestManager.h	(revision 9667)
@@ -43,5 +43,4 @@
 
 #include "util/Singleton.h"
-#include "core/OrxonoxClass.h"
 
 namespace orxonox  // tolua_export
@@ -59,5 +58,5 @@
     */
     class _QuestsystemExport QuestManager  // tolua_export
-        : public Singleton<QuestManager>, public orxonox::OrxonoxClass
+        : public Singleton<QuestManager>
     { // tolua_export
 
Index: code/trunk/src/modules/questsystem/effects/AddQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 9667)
@@ -43,5 +43,5 @@
 namespace orxonox
 {
-    CreateFactory(AddQuest);
+    RegisterClass(AddQuest);
 
     /**
@@ -49,5 +49,5 @@
         Constructor. Registers the object.
     */
-    AddQuest::AddQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    AddQuest::AddQuest(Context* context) : ChangeQuestStatus(context)
     {
         RegisterObject(AddQuest);
Index: code/trunk/src/modules/questsystem/effects/AddQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 9667)
@@ -59,5 +59,5 @@
     {
         public:
-        AddQuest(BaseObject* creator);
+        AddQuest(Context* context);
         virtual ~AddQuest();
 
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 9667)
@@ -44,5 +44,5 @@
 namespace orxonox
 {
-    CreateFactory(AddQuestHint);
+    RegisterClass(AddQuestHint);
 
     /**
@@ -50,5 +50,5 @@
         Constructor. Registers the object.
     */
-    AddQuestHint::AddQuestHint(BaseObject* creator) : QuestEffect(creator)
+    AddQuestHint::AddQuestHint(Context* context) : QuestEffect(context)
     {
         RegisterObject(AddQuestHint);
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 9667)
@@ -61,5 +61,5 @@
     {
         public:
-            AddQuestHint(BaseObject* creator);
+            AddQuestHint(Context* context);
             virtual ~AddQuestHint();
 
Index: code/trunk/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 9667)
@@ -41,5 +41,5 @@
 namespace orxonox
 {
-    CreateFactory(AddReward);
+    RegisterClass(AddReward);
 
     /**
@@ -47,5 +47,5 @@
         Constructor. Registers the object.
     */
-    AddReward::AddReward(BaseObject* creator) : QuestEffect(creator)
+    AddReward::AddReward(Context* context) : QuestEffect(context)
     {
         RegisterObject(AddReward);
Index: code/trunk/src/modules/questsystem/effects/AddReward.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 9667)
@@ -65,5 +65,5 @@
     {
         public:
-            AddReward(BaseObject* creator);
+            AddReward(Context* context);
             virtual ~AddReward();
 
Index: code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.cc	(revision 9667)
@@ -42,9 +42,11 @@
 namespace orxonox
 {
+    RegisterAbstractClass(ChangeQuestStatus).inheritsFrom(Class(QuestEffect));
+
     /**
     @brief
         Constructor. Registers the object.
     */
-    ChangeQuestStatus::ChangeQuestStatus(BaseObject* creator) : QuestEffect(creator)
+    ChangeQuestStatus::ChangeQuestStatus(Context* context) : QuestEffect(context)
     {
         RegisterObject(ChangeQuestStatus);
Index: code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 9667)
@@ -56,5 +56,5 @@
     {
         public:
-            ChangeQuestStatus(BaseObject* creator);
+            ChangeQuestStatus(Context* context);
             virtual ~ChangeQuestStatus();
 
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 9667)
@@ -42,5 +42,5 @@
 namespace orxonox
 {
-    CreateFactory(CompleteQuest);
+    RegisterClass(CompleteQuest);
 
     /**
@@ -48,5 +48,5 @@
         Constructor. Registers the object.
     */
-    CompleteQuest::CompleteQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    CompleteQuest::CompleteQuest(Context* context) : ChangeQuestStatus(context)
     {
         RegisterObject(CompleteQuest);
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 9667)
@@ -59,5 +59,5 @@
     {
         public:
-            CompleteQuest(BaseObject* creator);
+            CompleteQuest(Context* context);
             virtual ~CompleteQuest();
 
Index: code/trunk/src/modules/questsystem/effects/FailQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 9667)
@@ -42,5 +42,5 @@
 namespace orxonox
 {
-    CreateFactory(FailQuest);
+    RegisterClass(FailQuest);
 
     /**
@@ -48,5 +48,5 @@
         Constructor. Registers the object.
     */
-    FailQuest::FailQuest(BaseObject* creator) : ChangeQuestStatus(creator)
+    FailQuest::FailQuest(Context* context) : ChangeQuestStatus(context)
     {
         RegisterObject(FailQuest);
Index: code/trunk/src/modules/questsystem/effects/FailQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 8952)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 9667)
@@ -59,5 +59,5 @@
     {
         public:
-            FailQuest(BaseObject* creator);
+            FailQuest(Context* context);
             virtual ~FailQuest();
 
