Index: code/branches/ai/src/orxonox/controllers/AIController.cc
===================================================================
--- code/branches/ai/src/orxonox/controllers/AIController.cc	(revision 7028)
+++ code/branches/ai/src/orxonox/controllers/AIController.cc	(revision 7029)
@@ -230,4 +230,6 @@
             if (this->specificMasterAction_ == SPIN)
                     this->spin();
+            if (this->specificMasterAction_ == FOLLOWHUMAN)
+                    this->follow();
         }
 
Index: code/branches/ai/src/orxonox/controllers/ArtificialController.cc
===================================================================
--- code/branches/ai/src/orxonox/controllers/ArtificialController.cc	(revision 7028)
+++ code/branches/ai/src/orxonox/controllers/ArtificialController.cc	(revision 7029)
@@ -91,8 +91,9 @@
 
         XMLPortParam(ArtificialController, "team", setTeam, getTeam, xmlelement, mode).defaultValues(-1);
-        XMLPortParam(ArtificialController, "formation", setFormationFlight, getFormationFlight, xmlelement, mode).defaultValues(true);
-    }
-
-// Documentation only here to get a faster overview for creating a useful documentation, what you're reading here not intended for an actual documentation...
+        XMLPortParam(ArtificialController, "formationflight", setFormationFlight, getFormationFlight, xmlelement, mode).defaultValues(true);
+        XMLPortParam(ArtificialController, "formation_size", setFormationSize, getFormationSize, xmlelement, mode).defaultValues(STANDARD_MAX_FORMATION_SIZE);
+    }
+
+// Documentation only here to get a faster overview for creating a useful documentation...
 
     /**
@@ -231,5 +232,5 @@
 
     /**
-        @brief Gets called if ControllableEntity is changed. Resets the bot when it dies.
+        @brief Gets called when ControllableEntity is being changed. Resets the bot when it dies.
     */
     void ArtificialController::changedControllableEntity()
@@ -473,5 +474,5 @@
 
     /**
-        @brief Master sets its slaves free for \var FREEDOM_COUNT seconds.
+        @brief Master sets its slaves free for @var FREEDOM_COUNT seconds.
     */
     void ArtificialController::forceFreeSlaves()
@@ -564,5 +565,5 @@
     void ArtificialController::spinInit()
     {
-         COUT(0) << "~spinInit" << std::endl;
+        COUT(0) << "~spinInit" << std::endl;
         if(this->state_ != MASTER) return;
         this->specificMasterAction_ = SPIN;
@@ -582,21 +583,30 @@
         @brief Master begins to follow a human player. Is a "specific master action".
         @param humanController human to follow.
-        @param alaways follows human forever if true - only inplemented for false yet.
-    */
-    void ArtificialController::followHuman(Pawn* human, bool always)
-    {
-        if (human == NULL)
-        {
-            this->specificMasterAction_ = NONE;
+        @param alaways follows human forever if true, else it follows it for @var SECONDS_TO_FOLLOW_HUMAN seconds.
+    */
+    void ArtificialController::followHumanInit(Pawn* human, bool always)
+    {
+        COUT(0) << "~followInit" << std::endl;
+        if (human == NULL || this->state_ != MASTER)
             return;
-        }
+
+        this->specificMasterAction_  =  FOLLOWHUMAN;
+
+        this->setTarget(human);
         if (!always)
-        {
-            this->setTarget(human);
             this->specificMasterActionHoldCount_ = SECONDS_TO_FOLLOW_HUMAN;
-            this->specificMasterAction_  =  HOLD;
-        }
-
-    }
+        else 
+            this->specificMasterActionHoldCount_ = INT_MAX; //for now...
+
+    }
+
+    /**
+        @brief Follows target with adjusted speed. Called within tick.
+    */
+    void ArtificialController::follow()
+    {
+        this->moveToTargetPosition(); //standard position apprach for now.
+    }
+
 
 
Index: code/branches/ai/src/orxonox/controllers/ArtificialController.h
===================================================================
--- code/branches/ai/src/orxonox/controllers/ArtificialController.h	(revision 7028)
+++ code/branches/ai/src/orxonox/controllers/ArtificialController.h	(revision 7029)
@@ -23,5 +23,5 @@
  *      Fabian 'x3n' Landau
  *   Co-authors:
- *      ...
+ *      Dominik Solenicki
  *
  */
@@ -58,4 +58,8 @@
             inline bool getFormationFlight() const
                 { return this->formationFlight_; }
+            inline void setFormationSize(int size)
+                { this->maxFormationSize_ = size; }
+            inline int getFormationSize() const
+                { return this->maxFormationSize_; }
             virtual void changedControllableEntity();
 
@@ -105,5 +109,6 @@
             void spinInit();
             void spin();
-            void followHuman(Pawn* humanController, bool always);
+            void followHumanInit(Pawn* human, bool always);
+            void follow();
 
             void setTargetPosition(const Vector3& target);
