Index: code/trunk/src/orxonox/hud/HUD.cc
===================================================================
--- code/trunk/src/orxonox/hud/HUD.cc	(revision 1375)
+++ code/trunk/src/orxonox/hud/HUD.cc	(revision 1387)
@@ -43,7 +43,9 @@
 namespace orxonox
 {
+    ConsoleCommandShortcut(HUD, cycleRadarFocus, AccessLevel::User);
+
     using namespace Ogre;
 
-    HUD::HUD(int zoom){
+    HUD::HUD(){
         om = &Ogre::OverlayManager::getSingleton();
 
@@ -103,5 +105,8 @@
         radar->addObject(Vector3(0.0, 4000.0, 0.0));
         radar->addObject(Vector3(0.0, 0.0, 6800.0));
-        RadarOverlayElement::cycleFocus();
+    }
+
+    HUD::~HUD(){
+        //todo: clean up objects
     }
 
@@ -123,9 +128,15 @@
     }
 
-    void HUD::setFPS(float fps){
-        fpsText->setCaption("FPS: " + Ogre::StringConverter::toString(fps));
+    /*static*/HUD& HUD::getSingleton(){
+        static HUD theInstance;
+        return theInstance;
     }
 
-    HUD::~HUD(void){
+    /*static*/void HUD::setFPS(float fps){
+        HUD::getSingleton().fpsText->setCaption("FPS: " + Ogre::StringConverter::toString(fps));
+    }
+
+    /*static*/void HUD::cycleRadarFocus(){
+        HUD::getSingleton().radar->cycleFocus();
     }
 }
Index: code/trunk/src/orxonox/hud/HUD.h
===================================================================
--- code/trunk/src/orxonox/hud/HUD.h	(revision 1375)
+++ code/trunk/src/orxonox/hud/HUD.h	(revision 1387)
@@ -46,4 +46,7 @@
     {
         private:
+            HUD();
+            HUD(HUD& instance);
+            ~HUD();
             Ogre::OverlayManager* om;
             Ogre::Overlay* orxonoxHUD;
@@ -56,9 +59,10 @@
 
         public:
-            HUD(int zoom);
-            ~HUD();
-            void setFPS(float fps);
             virtual void tick(float);
 
+            static HUD* instance_s;
+            static HUD& getSingleton();
+            static void setFPS(float fps);
+            static void cycleRadarFocus();
     };
 }
Index: code/trunk/src/orxonox/hud/RadarOverlayElement.cc
===================================================================
--- code/trunk/src/orxonox/hud/RadarOverlayElement.cc	(revision 1375)
+++ code/trunk/src/orxonox/hud/RadarOverlayElement.cc	(revision 1387)
@@ -30,12 +30,8 @@
 namespace orxonox
 {
-    ConsoleCommandShortcut(RadarOverlayElement, cycleFocus, AccessLevel::User);
 
     using namespace Ogre;
 
-    RadarOverlayElement* RadarOverlayElement::instance_s = NULL;
-
     RadarOverlayElement::RadarOverlayElement(const String& name):Ogre::PanelOverlayElement(name){
-        RadarOverlayElement::instance_s = this;
     }
 
@@ -205,21 +201,19 @@
 	}
 
-	/*static*/void RadarOverlayElement::cycleFocus(){
-	    if(RadarOverlayElement::instance_s == NULL) return;
-
-	    if(RadarOverlayElement::instance_s->focus_ == NULL){
-            RadarOverlayElement::instance_s->focus_ = RadarOverlayElement::instance_s->firstRadarObject_;
+	void RadarOverlayElement::cycleFocus(){
+	    if(focus_ == NULL){
+            focus_ = firstRadarObject_;
 	    }
         else{
-            RadarOverlayElement::instance_s->focus_->panel_->setMaterialName("Orxonox/RedDot");
-            RadarOverlayElement::instance_s->focus_ = RadarOverlayElement::instance_s->focus_->next;
-        }
-
-        if(RadarOverlayElement::instance_s->focus_ == NULL){
-            RadarOverlayElement::instance_s->navMarker_->hide();
-        }
-        else{
-            RadarOverlayElement::instance_s->navMarker_->show();
-            RadarOverlayElement::instance_s->focus_->panel_->setMaterialName("Orxonox/WhiteDot");
+            focus_->panel_->setMaterialName("Orxonox/RedDot");
+            focus_ = focus_->next;
+        }
+
+        if(focus_ == NULL){
+            navMarker_->hide();
+        }
+        else{
+            navMarker_->show();
+            focus_->panel_->setMaterialName("Orxonox/WhiteDot");
         }
 	}
Index: code/trunk/src/orxonox/hud/RadarOverlayElement.h
===================================================================
--- code/trunk/src/orxonox/hud/RadarOverlayElement.h	(revision 1375)
+++ code/trunk/src/orxonox/hud/RadarOverlayElement.h	(revision 1387)
@@ -72,4 +72,5 @@
             void addObject(Vector3 pos);
             void listObjects();
+            void cycleFocus();
             float getDist2Focus();
             float calcRadius(RadarObject* obj);
@@ -81,7 +82,4 @@
 			RadarObject* lastRadarObject_;          // end of linked list
 			RadarObject* focus_;                    // object that is focussed
-
-            static RadarOverlayElement* instance_s;
-            static void cycleFocus();
 	};
 }
