Index: /orxonox/trunk/src/Makefile.am
===================================================================
--- /orxonox/trunk/src/Makefile.am	(revision 4837)
+++ /orxonox/trunk/src/Makefile.am	(revision 4838)
@@ -68,4 +68,5 @@
                   lib/graphics/light.cc \
                   lib/graphics/text_engine.cc \
+                  lib/graphics/render2D/element_2D.cc \
                   lib/lang/base_object.cc \
                   lib/lang/class_list.cc \
Index: /orxonox/trunk/src/Makefile.in
===================================================================
--- /orxonox/trunk/src/Makefile.in	(revision 4837)
+++ /orxonox/trunk/src/Makefile.in	(revision 4838)
@@ -75,8 +75,9 @@
 	orxonox-null_parent.$(OBJEXT) \
 	orxonox-graphics_engine.$(OBJEXT) orxonox-light.$(OBJEXT) \
-	orxonox-text_engine.$(OBJEXT) orxonox-base_object.$(OBJEXT) \
-	orxonox-class_list.$(OBJEXT) orxonox-ini_parser.$(OBJEXT) \
-	orxonox-substring.$(OBJEXT) orxonox-vector.$(OBJEXT) \
-	orxonox-curve.$(OBJEXT) orxonox-glmenu_imagescreen.$(OBJEXT) \
+	orxonox-text_engine.$(OBJEXT) orxonox-element_2D.$(OBJEXT) \
+	orxonox-base_object.$(OBJEXT) orxonox-class_list.$(OBJEXT) \
+	orxonox-ini_parser.$(OBJEXT) orxonox-substring.$(OBJEXT) \
+	orxonox-vector.$(OBJEXT) orxonox-curve.$(OBJEXT) \
+	orxonox-glmenu_imagescreen.$(OBJEXT) \
 	orxonox-benchmark.$(OBJEXT)
 orxonox_OBJECTS = $(am_orxonox_OBJECTS)
@@ -96,4 +97,5 @@
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox-crosshair.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox-curve.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/orxonox-element_2D.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox-environment.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/orxonox-factory.Po \
@@ -316,4 +318,5 @@
                   lib/graphics/light.cc \
                   lib/graphics/text_engine.cc \
+                  lib/graphics/render2D/element_2D.cc \
                   lib/lang/base_object.cc \
                   lib/lang/class_list.cc \
@@ -479,4 +482,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox-crosshair.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox-curve.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox-element_2D.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox-environment.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/orxonox-factory.Po@am__quote@
@@ -1138,4 +1142,20 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(orxonox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o orxonox-text_engine.obj `if test -f 'lib/graphics/text_engine.cc'; then $(CYGPATH_W) 'lib/graphics/text_engine.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/text_engine.cc'; fi`
+
+orxonox-element_2D.o: lib/graphics/render2D/element_2D.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(orxonox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT orxonox-element_2D.o -MD -MP -MF "$(DEPDIR)/orxonox-element_2D.Tpo" -c -o orxonox-element_2D.o `test -f 'lib/graphics/render2D/element_2D.cc' || echo '$(srcdir)/'`lib/graphics/render2D/element_2D.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/orxonox-element_2D.Tpo" "$(DEPDIR)/orxonox-element_2D.Po"; else rm -f "$(DEPDIR)/orxonox-element_2D.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/graphics/render2D/element_2D.cc' object='orxonox-element_2D.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/orxonox-element_2D.Po' tmpdepfile='$(DEPDIR)/orxonox-element_2D.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(orxonox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o orxonox-element_2D.o `test -f 'lib/graphics/render2D/element_2D.cc' || echo '$(srcdir)/'`lib/graphics/render2D/element_2D.cc
+
+orxonox-element_2D.obj: lib/graphics/render2D/element_2D.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(orxonox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT orxonox-element_2D.obj -MD -MP -MF "$(DEPDIR)/orxonox-element_2D.Tpo" -c -o orxonox-element_2D.obj `if test -f 'lib/graphics/render2D/element_2D.cc'; then $(CYGPATH_W) 'lib/graphics/render2D/element_2D.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/render2D/element_2D.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/orxonox-element_2D.Tpo" "$(DEPDIR)/orxonox-element_2D.Po"; else rm -f "$(DEPDIR)/orxonox-element_2D.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='lib/graphics/render2D/element_2D.cc' object='orxonox-element_2D.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/orxonox-element_2D.Po' tmpdepfile='$(DEPDIR)/orxonox-element_2D.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(orxonox_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o orxonox-element_2D.obj `if test -f 'lib/graphics/render2D/element_2D.cc'; then $(CYGPATH_W) 'lib/graphics/render2D/element_2D.cc'; else $(CYGPATH_W) '$(srcdir)/lib/graphics/render2D/element_2D.cc'; fi`
 
 orxonox-base_object.o: lib/lang/base_object.cc
Index: /orxonox/trunk/src/defs/class_id.h
===================================================================
--- /orxonox/trunk/src/defs/class_id.h	(revision 4837)
+++ /orxonox/trunk/src/defs/class_id.h	(revision 4838)
@@ -68,4 +68,6 @@
   CL_EVENT_LISTENER             =    0x20000000,
 
+  CL_ELEMENT_2D                 =    0x40000000,
+
   // subsuper-classes
   CL_MASK_SUBSUPER_CLASS        =    0x00fff000,
@@ -78,4 +80,6 @@
   CL_PROJECTILE                 =    0x00110000,
   CL_WEAPON                     =    0x00120000,
+
+  // subsuper-classes derivations taken : 1, a.     << THIS IS A LIST OF ALL THE DCL_MASK_SUBSUPERCLASS_ID's taken
 
   // lowest level classes
@@ -145,5 +149,4 @@
   CL_BV_TREE_NODE               =    0x00a02613,
   CL_OBB_TREE                   =    0x00a04614,
-  //! @todo !!!!THIS IS A HACK!!!!! DELETE THESE extensions.
   CL_OBB_TREE_NODE              =    0x00a08615,
   CL_BOUNDING_VOLUME            =    0x00a10616,
Index: /orxonox/trunk/src/lib/event/event_handler.cc
===================================================================
--- /orxonox/trunk/src/lib/event/event_handler.cc	(revision 4837)
+++ /orxonox/trunk/src/lib/event/event_handler.cc	(revision 4838)
@@ -72,5 +72,5 @@
       if( this->listeners[i][j] != NULL)
       {
-        PRINTF(2)("Someone forgot to unsubscribe an EventListener!\n");
+        PRINTF(2)("forgot to unsubscribe an EventListener %s!\n");//, this->listeners[i][j]->getName());
       }
     }
Index: /orxonox/trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/graphics_engine.cc	(revision 4837)
+++ /orxonox/trunk/src/lib/graphics/graphics_engine.cc	(revision 4838)
@@ -58,5 +58,4 @@
 {
   // delete what has to be deleted here
-  EventHandler::getInstance()->unsubscribe(this);
 }
 
Index: /orxonox/trunk/src/lib/graphics/render2D/element_2D.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/render2D/element_2D.cc	(revision 4838)
+++ /orxonox/trunk/src/lib/graphics/render2D/element_2D.cc	(revision 4838)
@@ -0,0 +1,50 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   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, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
+
+#include "element_2D.h"
+
+using namespace std;
+
+
+/**
+ * standard constructor
+ * @todo this constructor is not jet implemented - do it
+*/
+Element2D::Element2D ()
+{
+   this->setClassID(CL_ELEMENT_2D, "Element2D");
+
+   /* If you make a new class, what is most probably the case when you write this file
+      don't forget to:
+       1. Add the new file new_class.cc to the ./src/Makefile.am
+       2. Add the class identifier to ./src/class_id.h eg. CL_NEW_CLASS
+
+      Advanced Topics:
+      - if you want to let your object be managed via the ObjectManager make sure to read
+        the object_manager.h header comments. You will use this most certanly only if you
+        make many objects of your class, like a weapon bullet.
+   */
+}
+
+
+/**
+ * standard deconstructor
+*/
+Element2D::~Element2D ()
+{
+  // delete what has to be deleted here
+}
Index: /orxonox/trunk/src/lib/graphics/render2D/element_2D.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/render2D/element_2D.h	(revision 4838)
+++ /orxonox/trunk/src/lib/graphics/render2D/element_2D.h	(revision 4838)
@@ -0,0 +1,25 @@
+/*!
+ * @file element_2D.h
+ * @brief Definition of the 2D elements rendered on top through the GraphicsEngine
+*/
+
+#ifndef _ELEMENT_2D_H
+#define _ELEMENT_2D_H
+
+#include "base_object.h"
+
+// FORWARD DECLARATION
+
+//! A class for ...
+class Element2D : public BaseObject {
+
+ public:
+  Element2D();
+  virtual ~Element2D();
+
+
+ private:
+
+};
+
+#endif /* _ELEMENT_2D_H */
Index: /orxonox/trunk/src/lib/graphics/render2D/render_2d.cc
===================================================================
--- /orxonox/trunk/src/lib/graphics/render2D/render_2d.cc	(revision 4838)
+++ /orxonox/trunk/src/lib/graphics/render2D/render_2d.cc	(revision 4838)
@@ -0,0 +1,54 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   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, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: ...
+   co-programmer: ...
+*/
+
+//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
+
+#include "proto_singleton.h"
+
+using namespace std;
+
+
+/**
+ * standard constructor
+ */
+ProtoSingleton::ProtoSingleton ()
+{
+   this->setClassName("ProtoSingleton");
+   this->setClassID(CL_PROTO_ID, "ProtoSingleton");
+
+   /* If you make a new class, what is most probably the case when you write this file
+      don't forget to:
+       1. Add the new file new_class.cc to the ./src/Makefile.am
+       2. Add the class identifier to ./src/class_id.h eg. CL_NEW_CLASS
+
+      Advanced Topics:
+      - if you want to let your object be managed via the ObjectManager make sure to read
+        the object_manager.h header comments. You will use this most certanly only if you
+        make many objects of your class, like a weapon bullet.
+   */
+}
+
+/**
+ *  the singleton reference to this class
+ */
+ProtoSingleton* ProtoSingleton::singletonRef = NULL;
+
+/**
+   @brief standard deconstructor
+ */
+ProtoSingleton::~ProtoSingleton ()
+{
+  ProtoSingleton::singletonRef = NULL;
+}
Index: /orxonox/trunk/src/lib/graphics/render2D/render_2d.h
===================================================================
--- /orxonox/trunk/src/lib/graphics/render2D/render_2d.h	(revision 4838)
+++ /orxonox/trunk/src/lib/graphics/render2D/render_2d.h	(revision 4838)
@@ -0,0 +1,26 @@
+/*!
+ * @file proto_singleton.h
+ * @brief Definition of the ... singleton Class
+*/
+
+#ifndef _PROTO_SINGLETON_H
+#define _PROTO_SINGLETON_H
+
+#include "base_object.h"
+
+// FORWARD DEFINITION
+
+//! A default singleton class.
+class ProtoSingleton : public BaseObject {
+
+ public:
+  virtual ~ProtoSingleton(void);
+  /** @returns a Pointer to the only object of this Class */
+  inline static ProtoSingleton* getInstance(void) { if (!singletonRef) singletonRef = new ProtoSingleton();  return singletonRef; };
+
+ private:
+  ProtoSingleton(void);
+  static ProtoSingleton* singletonRef;
+};
+
+#endif /* _PROTO_SINGLETON_H */
Index: /orxonox/trunk/src/proto/proto_class.cc
===================================================================
--- /orxonox/trunk/src/proto/proto_class.cc	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_class.cc	(revision 4838)
@@ -22,6 +22,6 @@
 
 /**
-   \brief standard constructor
-   \todo this constructor is not jet implemented - do it
+ * standard constructor
+ * @todo this constructor is not jet implemented - do it
 */
 ProtoClass::ProtoClass ()
@@ -43,6 +43,5 @@
 
 /**
-   \brief standard deconstructor
-
+ * standard deconstructor
 */
 ProtoClass::~ProtoClass ()
Index: /orxonox/trunk/src/proto/proto_class.h
===================================================================
--- /orxonox/trunk/src/proto/proto_class.h	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_class.h	(revision 4838)
@@ -1,6 +1,5 @@
-/*! 
-    \file proto_class.h
-    \brief Definition of ...
-
+/*!
+ * @file proto_class.h
+ * @brief Definition of ...
 */
 
@@ -10,5 +9,5 @@
 #include "base_object.h"
 
-// FORWARD DEFINITION
+// FORWARD DECLARATION
 
 
Index: /orxonox/trunk/src/proto/proto_singleton.cc
===================================================================
--- /orxonox/trunk/src/proto/proto_singleton.cc	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_singleton.cc	(revision 4838)
@@ -22,6 +22,6 @@
 
 /**
-   \brief standard constructor
-*/
+ * standard constructor
+ */
 ProtoSingleton::ProtoSingleton ()
 {
@@ -42,15 +42,13 @@
 
 /**
-   \brief the singleton reference to this class
-*/
+ *  the singleton reference to this class
+ */
 ProtoSingleton* ProtoSingleton::singletonRef = NULL;
 
 /**
-   \brief standard deconstructor
-
-*/
+   @brief standard deconstructor
+ */
 ProtoSingleton::~ProtoSingleton ()
 {
   ProtoSingleton::singletonRef = NULL;
-
 }
Index: /orxonox/trunk/src/proto/proto_singleton.h
===================================================================
--- /orxonox/trunk/src/proto/proto_singleton.h	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_singleton.h	(revision 4838)
@@ -1,6 +1,5 @@
-/*! 
-    \file proto_singleton.h
-    \brief Definition of the ... singleton Class
-    
+/*!
+ * @file proto_singleton.h
+ * @brief Definition of the ... singleton Class
 */
 
@@ -17,5 +16,5 @@
  public:
   virtual ~ProtoSingleton(void);
-  /** \returns a Pointer to the only object of this Class */
+  /** @returns a Pointer to the only object of this Class */
   inline static ProtoSingleton* getInstance(void) { if (!singletonRef) singletonRef = new ProtoSingleton();  return singletonRef; };
 
Index: /orxonox/trunk/src/proto/proto_world_entity.cc
===================================================================
--- /orxonox/trunk/src/proto/proto_world_entity.cc	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_world_entity.cc	(revision 4838)
@@ -1,3 +1,3 @@
-/* 
+/*
    orxonox - the future of 3D-vertical-scrollers
 
@@ -22,28 +22,21 @@
 using namespace std;
 
-/**
-   \brief standard constructor
-
-*/
-ProtoWorldEntity::ProtoWorldEntity () 
-{
-  this->init();
-}
 
 /**
-   \brief constructs and loads a ProtoWorldEntity from a XML-element
-   \param root the XML-element to load from
-*/
+ * constructs and loads a ProtoWorldEntity from a XML-element
+ * @param root the XML-element to load from
+ */
 ProtoWorldEntity::ProtoWorldEntity(const TiXmlElement* root)
 {
   this->init();
-  this->loadParams(root);
+  if (root != NULL)
+    this->loadParams(root);
 }
 
 
 /**
-   \brief standard deconstructor
-*/
-ProtoWorldEntity::~ProtoWorldEntity () 
+ * standard deconstructor
+ */
+ProtoWorldEntity::~ProtoWorldEntity ()
 {
 
@@ -51,17 +44,21 @@
 
 /**
-   \brief initializes the ProtoWorldEntity
-*/
+ * initializes the ProtoWorldEntity
+ * @todo change this to what you wish
+ */
 void ProtoWorldEntity::init(void)
 {
+  this->setClassID(CL_PROTO_WORLD_ENTITY, )
   ...
 }
 
 /**
-   \brief loads a ProtoWorldEntity from a XML-element
-   \param root the XML-element to load from
-*/
+ * loads a ProtoWorldEntity from a XML-element
+ * @param root the XML-element to load from
+ * @todo make the class Loadable
+ */
 void ProtoWorldEntity::loadParams(const TiXmlElement* root)
 {
+  // all the clases this Entity is directly derived from must be called in this way, to load all settings.
   static_cast<WorldEntity*>(this)->loadParam(root);
 
@@ -71,7 +68,7 @@
 
 /**
-   \brief advances the ProtoWorldEntity about time seconds
-   \param time the Time to step
-*/
+ * advances the ProtoWorldEntity about time seconds
+ * @param time the Time to step
+ */
 ProtoWorldEntity::tick(float time)
 {
@@ -80,16 +77,16 @@
 
 /**
-   \brief draws this worldEntity
-*/
+ * draws this worldEntity
+ */
 void ProtoWorldEntity::draw ()
-{ 
+{
   glMatrixMode(GL_MODELVIEW);
   glPushMatrix();
   float matrix[4][4];
-  
+
   /* translate */
-  glTranslatef (this->getAbsCoor ().x, 
-		this->getAbsCoor ().y, 
-		this->getAbsCoor ().z);
+  glTranslatef (this->getAbsCoor ().x,
+                this->getAbsCoor ().y,
+                this->getAbsCoor ().z);
   /* rotate */
   this->getAbsDir().matrix(matrix);
Index: /orxonox/trunk/src/proto/proto_world_entity.h
===================================================================
--- /orxonox/trunk/src/proto/proto_world_entity.h	(revision 4837)
+++ /orxonox/trunk/src/proto/proto_world_entity.h	(revision 4838)
@@ -1,6 +1,5 @@
-/*! 
-    \file proto_world_entity.h
-
-    description
+/*!
+ * @file proto_world_entity.h
+ * @brief description
 */
 
@@ -11,15 +10,14 @@
 
 //! A Class to ...
-class ProtoWorldEntity : public WorldEntity 
+class ProtoWorldEntity : public WorldEntity
 {
 
  public:
-  ProtoWorldEntity();
-  ProtoWorldEntity(const TiXmlElement* root);
+  ProtoWorldEntity(const TiXmlElement* root = NULL);
   virtual ~ProtoWorldEntity();
-  
+
   void loadParams(const TiXmlElement* root);
   void init();
-  
+
   virtual void draw();
   virtual void tick(float time);
Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 4837)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 4838)
@@ -169,9 +169,9 @@
 
 /**
-  *  remove the World from memory
+ *  remove the World from memory
 
     delete everything explicitly, that isn't contained in the parenting tree!
     things contained in the tree are deleted automaticaly
-*/
+ */
 World::~World ()
 {
@@ -179,6 +179,4 @@
 
   ParticleEngine::getInstance()->debug();
-
-  EventHandler::getInstance()->unsubscribe(this->localPlayer);
 
   delete WorldInterface::getInstance();
Index: /orxonox/trunk/src/util/loading/game_loader.cc
===================================================================
--- /orxonox/trunk/src/util/loading/game_loader.cc	(revision 4837)
+++ /orxonox/trunk/src/util/loading/game_loader.cc	(revision 4838)
@@ -54,5 +54,4 @@
     delete this->currentCampaign;
   this->currentCampaign = NULL;
-  this->eventHandler->unsubscribe(this, ES_ALL);
 }
 
Index: /orxonox/trunk/src/world_entities/camera.cc
===================================================================
--- /orxonox/trunk/src/world_entities/camera.cc	(revision 4837)
+++ /orxonox/trunk/src/world_entities/camera.cc	(revision 4838)
@@ -57,5 +57,4 @@
 Camera::~Camera()
 {
-  EventHandler::getInstance()->unsubscribe(this);
 }
 
Index: /orxonox/trunk/src/world_entities/weapons/crosshair.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/crosshair.cc	(revision 4837)
+++ /orxonox/trunk/src/world_entities/weapons/crosshair.cc	(revision 4838)
@@ -52,5 +52,4 @@
 
   // delete what has to be deleted here
-  EventHandler::getInstance()->unsubscribe(this);
 
   GraphicsEngine::showMouse(true);
