Index: /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc	(revision 10869)
@@ -130,12 +130,4 @@
     { 
         return this->formationMode_; 
-    }
-    void CommonController::setRank(Rank::Value val)
-    { 
-        this->rank_ = val; 
-    }
-    Rank::Value CommonController::getRank() const
-    { 
-        return this->rank_; 
     }
     
Index: /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h	(revision 10869)
@@ -53,13 +53,5 @@
         };
     }
-    namespace Rank
-    {
-        enum Value 
-        { 
-            NONE, SECTIONLEADER, DIVISIONLEADER, WINGMAN 
-        };
 
-    }
-   
 
     
@@ -86,7 +78,5 @@
                 FormationMode::Value getFormationMode() const;
 
-                void setRank(Rank::Value val);
-                Rank::Value getRank() const;
-           
+               
 
             //----[/XML methods]----
@@ -172,5 +162,4 @@
             //----["Private" variables]----
                 FormationMode::Value formationMode_;
-                Rank::Value rank_;
 
                 int attackRange_;
Index: /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc	(revision 10869)
@@ -45,5 +45,4 @@
         this->myWingman_ = 0;
         this->actionTimer_.setTimer(ACTION_INTERVAL, true, createExecutor(createFunctor(&DivisionController::action, this)));
-        this->rank_ = Rank::DIVISIONLEADER;
     }
 
@@ -107,4 +106,5 @@
         
     }
+    //I wanted to do it different here, but at this point I think nothing will change if I delete that method
     void DivisionController::stayNearProtect()
     {
@@ -112,5 +112,5 @@
     }
     
-    bool DivisionController::setWingman(ActionpointController* cwingman)
+    bool DivisionController::setWingman(CommonController* cwingman)
     {
 
Index: /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.h	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.h	(revision 10869)
@@ -53,5 +53,5 @@
             //----[own functions]----
                 virtual bool setFollower(LeaderController* myFollower);
-                virtual bool setWingman(ActionpointController* cwingman);
+                virtual bool setWingman(CommonController* cwingman);
                 virtual bool hasWingman();
                 virtual bool hasFollower();
Index: /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc	(revision 10869)
@@ -47,5 +47,4 @@
         this->myWingman_ = 0;
         this->myDivisionLeader_ = 0;
-        this->rank_ = Rank::SECTIONLEADER;
         this->bFirstAction_ = true;
         //orxout(internal_error) << this << "Was created" << endl;
@@ -285,5 +284,5 @@
         {
             //0ptr or not DivisionController?
-            if (!(it) || !((it)->getRank() == Rank::DIVISIONLEADER) || !(it->getControllableEntity()))
+            if (!(it) || !((it)->getIdentifier()->getName() == "DivisionController") || !(it->getControllableEntity()))
                 continue;
             //same team?
@@ -311,5 +310,5 @@
         return 0;
     }
-    bool SectionController::setWingman(ActionpointController* cwingman)
+    bool SectionController::setWingman(CommonController* cwingman)
     {
         WeakPtr<WingmanController> wingman = orxonox_cast<WingmanController*>(cwingman);
Index: /code/branches/campaignHS15/src/orxonox/controllers/SectionController.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/SectionController.h	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/SectionController.h	(revision 10869)
@@ -53,5 +53,5 @@
                 LeaderController* findNewDivisionLeader();
 
-                virtual bool setWingman(ActionpointController* cwingman);
+                virtual bool setWingman(CommonController* cwingman);
                 virtual bool hasWingman();
 
Index: /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.cc	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.cc	(revision 10869)
@@ -41,5 +41,4 @@
         this->actionTimer_.setTimer(ACTION_INTERVAL, true, createExecutor(createFunctor(&WingmanController::action, this)));
         this->myLeader_ = 0;
-        this->rank_ = Rank::WINGMAN;
         this->bFirstAction_ = true;
 
@@ -81,5 +80,5 @@
         if (!this->myLeader_)
         {
-            ActionpointController* newLeader = findNewLeader();
+            ActionpointController* newLeader = orxonox_cast<ActionpointController*> (findNewLeader());
             this->myLeader_ = newLeader;
            
@@ -172,5 +171,5 @@
         Vector3* targetRelativePosition;
 
-        if (this->myLeader_->getRank() == Rank::DIVISIONLEADER)
+        if (this->myLeader_->getIdentifier()->getName() == "DivisionController")
         {
             switch (this->formationMode_){
@@ -217,5 +216,5 @@
     }
     //----POST: closest leader that is ready to take a new wingman is returned----
-    ActionpointController* WingmanController::findNewLeader()
+    CommonController* WingmanController::findNewLeader()
     {
 
@@ -224,12 +223,12 @@
 
         //----vars for finding the closest leader----
-        ActionpointController* closestLeader = 0;
+        CommonController* closestLeader = 0;
         float minDistance =  std::numeric_limits<float>::infinity();
         Gametype* gt = this->getGametype();
-        for (ObjectList<ActionpointController>::iterator it = ObjectList<ActionpointController>::begin(); it; ++it)
+        for (ObjectList<CommonController>::iterator it = ObjectList<CommonController>::begin(); it; ++it)
         {
             //----0ptr or not a leader or dead?----
             if (!it || 
-                (it->getRank() != Rank::SECTIONLEADER && it->getRank() != Rank::DIVISIONLEADER) || 
+                (it->getIdentifier()->getName() != "SectionController" && it->getIdentifier()->getName() != "DivisionController") || 
                 !(it->getControllableEntity()))
                 continue;
@@ -251,5 +250,5 @@
         {
             //----Racing conditions----
-            if (closestLeader->setWingman(this))
+            if (closestLeader->setWingman(orxonox_cast<CommonController*>(this)))
                 return closestLeader;
         }
Index: /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.h	(revision 10868)
+++ /code/branches/campaignHS15/src/orxonox/controllers/WingmanController.h	(revision 10869)
@@ -52,5 +52,5 @@
 
             //----[own functions]----
-               ActionpointController* findNewLeader();
+               CommonController* findNewLeader();
             //----[/own functions]----
 
