Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.cc	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.cc	(revision 11736)
@@ -71,8 +71,4 @@
 */
 
-
-#include "../../orxonox/worldentities/pawns/Pawn.h"
-#include "../../orxonox/worldentities/WorldEntity.h"
-
 #include "AsteroidMinable.h"
 
@@ -82,15 +78,12 @@
 #include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "core/EventIncludes.h"
-#include "network/NetworkFunction.h" 
 #include "util/Convert.h"
 #include "util/Math.h"
 
-#include "../pickup/PickupSpawner.h"
-#include "../pickup/Pickup.h"
-
-#include "../objects/collisionshapes/SphereCollisionShape.h"
-#include "../../orxonox/graphics/Model.h"
-
+#include "pickup/PickupSpawner.h"
+#include "pickup/Pickup.h"
+
+#include "objects/collisionshapes/SphereCollisionShape.h"
+#include "graphics/Model.h"
 
 namespace orxonox{
@@ -102,12 +95,9 @@
 
         RegisterObject(AsteroidMinable);
-        this->context = context;
 
         // Default Values:
-        this->size = 10; 
+        this->size = 1;
         this->dropStuff = true; 
         this->generateSmaller = true; 
-        this->health_ = 15*size; 
-        this->maxHealth_ = this->health_;
         this->acceptsPickups_ = false; 
 
@@ -121,8 +111,17 @@
     }
 
-    // @brief Use this constructor with care. Mainly used internally, arguments are passed directly. 
-    AsteroidMinable::AsteroidMinable(Context* c, float size, Vector3 position, bool dropStuff) : Pawn(c){
-
-        RegisterObject(AsteroidMinable);
+    AsteroidMinable::~AsteroidMinable(){
+
+    }
+
+    void AsteroidMinable::setSize(int s)
+    {
+        this->size = s;
+        this->health_ = 15*size;
+        this->maxHealth_ = this->health_;
+    }
+
+    // @brief Helper method.
+    void AsteroidMinable::putStuff(){
 
         // The radar is able to detect whether an asteroid contains resources....
@@ -136,20 +135,6 @@
         }
 
-        this->context = c;
-        this->size = size;
-        this->health_ = 15*size; 
-        this->maxHealth_ = this->health_;
-        this->acceptsPickups_ = false; 
-        this->generateSmaller = true; 
-        this->dropStuff = dropStuff; 
-
-        this->setPosition(position);
-        //this->roll = rand()*5; //etwas Drehung. Richtige Variable?
-
-        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
-        this->enableCollisionCallback();
-
         // Add Model, random one of the 6 shapes
-        Model* hull = new Model(this->context);
+        Model* hull = new Model(this->getContext());
         hull->setMeshSource("ast" + multi_cast<std::string>(1 + (int)rnd(0, 6)) + ".mesh");
         hull->setScale(this->size);
@@ -157,28 +142,9 @@
 
         // Collision shape
-        SphereCollisionShape* cs = new SphereCollisionShape(this->context);
+        SphereCollisionShape* cs = new SphereCollisionShape(this->getContext());
         cs->setRadius((this->size)*2); //OFFEN: Feinabstimmung der Radien. 
         this->attachCollisionShape(cs); 
 
-        this->registerVariables();
-
         this->initialised=true; 
-
-    }
-
-    AsteroidMinable::~AsteroidMinable(){
-
-    }
-
-    // @brief Helper method. 
-    void AsteroidMinable::putStuff(){
-
-        AsteroidMinable* reborn = new AsteroidMinable(this->context, this->size, this->getPosition(), this->dropStuff);
-        reborn->setVelocity(this->getVelocity());
-        // reborn->setAngularVelocity(this->getAngularVelocity()); // Add all other stuff, too?
-
-        this->bAlive_ = false;
-        this->destroyLater();
-
     }
 
@@ -188,12 +154,6 @@
 
         XMLPortParam(AsteroidMinable, "size", setSize, getSize, xmlelement, mode);
-        XMLPortParam(AsteroidMinable, "generateSmaller", toggleShattering, doesShatter, xmlelement, mode);
-        XMLPortParam(AsteroidMinable, "dropStuff", toggleDropStuff, doesDropStuff, xmlelement, mode); 
-
-    }
-
-    void AsteroidMinable::XMLEventPort(Element& xmlelement, XMLPort::Mode mode){
-
-        SUPER(AsteroidMinable, XMLEventPort, xmlelement, mode);
+        XMLPortParam(AsteroidMinable, "generateSmaller", setShattering, doesShatter, xmlelement, mode);
+        XMLPortParam(AsteroidMinable, "dropStuff", setDropStuff, doesDropStuff, xmlelement, mode);
 
     }
@@ -228,5 +188,5 @@
         // Pickups which can be harvested. It's munition at the moment, could be changed/extended. 
         if(dropStuff){
-            PickupSpawner* thingy = new PickupSpawner(this->context);
+            PickupSpawner* thingy = new PickupSpawner(this->getContext());
 
             std::string tname;
@@ -366,7 +326,9 @@
         }
         
-        AsteroidMinable* child = new AsteroidMinable(this->context, masses[fisch], this->getPosition() + pos, this->dropStuff);
+        AsteroidMinable* child = new AsteroidMinable(this->getContext());
+        child->setSize(masses[fisch]);
+        child->setPosition(this->getPosition() + pos);
         child->setVelocity(this->getVelocity());
-
+        child->setDropStuff(this->dropStuff);
     }
     // orxout() << "Leaving spawnChildren() method. " << endl;
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.h	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/AsteroidMinable.h	(revision 11736)
@@ -76,27 +76,16 @@
 #include "AsteroidMiningPrereqs.h"
 
-#include <string>
-#include <vector>
-#include "interfaces/PickupCarrier.h"
-#include "interfaces/RadarViewable.h"
-#include "worldentities/ControllableEntity.h"
-#include "worldentities/ExplosionPart.h"
-
-#include "../../orxonox/worldentities/pawns/Pawn.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox{
 
 
-    class _AsteroidMiningExport AsteroidMinable : public Pawn{
+    class _AsteroidMiningExport AsteroidMinable : public Pawn
+    {
+        public:
+            AsteroidMinable(Context* context);
+            virtual ~AsteroidMinable();
 
-        public:
-            // @brief This constructor is for XML access only!
-            AsteroidMinable(Context* context);
-            // @brief Call this Constructor from other C-files.
-            AsteroidMinable(Context* c, float size, Vector3 position, bool dS);
-
-            virtual ~AsteroidMinable();
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void tick(float dt) override;
 
@@ -105,16 +94,14 @@
             virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, const btCollisionShape* cs, float damage, float healthdamage = 0.0f, float shielddamage = 0.0f);
 
-            inline void setSize(int s){this->size = s;}
+            void setSize(int s);
             inline int getSize(){return this->size;}
 
-            inline void toggleShattering(bool b){this->generateSmaller = b;}
+            inline void setShattering(bool b){this->generateSmaller = b;}
             inline bool doesShatter(){return this->generateSmaller;}
 
-            inline void toggleDropStuff(bool b){this->dropStuff = b;}
+            inline void setDropStuff(bool b){this->dropStuff = b;}
             inline bool doesDropStuff(){return this->dropStuff;}
 
         protected:
-
-            Context* context;
 
             int size; //!< Implies health and type of dropped pickups
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/CMakeLists.txt	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/CMakeLists.txt	(revision 11736)
@@ -13,5 +13,4 @@
 
   LINK_LIBRARIES
-    overlays
     orxonox
     pickup
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.cc	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.cc	(revision 11736)
@@ -45,7 +45,4 @@
 
 
-#include "../../orxonox/worldentities/pawns/Pawn.h"
-#include "../../orxonox/worldentities/WorldEntity.h"
-
 #include "SpicedAsteroidBelt.h"
 #include "SpicedAsteroidField.h"
@@ -54,8 +51,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "core/EventIncludes.h"
-#include "network/NetworkFunction.h"
 #include "util/Math.h"
 
@@ -64,9 +58,7 @@
     RegisterClass(SpicedAsteroidBelt);
 
-    SpicedAsteroidBelt::SpicedAsteroidBelt(Context* context) : Pawn(context) {
+    SpicedAsteroidBelt::SpicedAsteroidBelt(Context* context) : BaseObject(context) {
 
         RegisterObject(SpicedAsteroidBelt);
-
-        this->context = context; 
 
         // Default Values:
@@ -85,6 +77,4 @@
         this->tiltAt = 0.0; 
         this->tiltBy = 0.0;  
-
-        this->registerVariables();
 
     }
@@ -115,8 +105,15 @@
             
             Vector3 pos(radius*cos(sepp)*sin(globi), radius*sin(sepp)*sin(globi), radius*cos(globi));
-            new SpicedAsteroidField(this->context, this->position + pos, this->minSize, this->maxSize, width, segmentCount, this->foggy, this->mDensity, this->fogDensity);
-            
+
+            SpicedAsteroidField* field = new SpicedAsteroidField(this->getContext());
+            field->setPosition(this->position + pos);
+            field->setMinSize(this->minSize);
+            field->setMaxSize(this->maxSize);
+            field->setRadius(width);
+            field->setCount(segmentCount);
+            field->setFog(this->foggy);
+            field->setMineralDensity(this->mDensity);
+            field->setFogDensity(this->fogDensity);
         }
-        
     }
 
@@ -142,31 +139,7 @@
     }
 
-    void SpicedAsteroidBelt::XMLEventPort(Element& xmlelement, XMLPort::Mode mode){
-
-    }
-
-    void SpicedAsteroidBelt::registerVariables(){
-
-        registerVariable(this->count, VariableDirection::ToClient);
-        registerVariable(this->mDensity, VariableDirection::ToClient);
-        registerVariable(this->position, VariableDirection::ToClient);
-        registerVariable(this->segments, VariableDirection::ToClient);
-
-        registerVariable(this->maxSize, VariableDirection::ToClient);
-        registerVariable(this->minSize, VariableDirection::ToClient);
-        registerVariable(this->radius0, VariableDirection::ToClient);
-        registerVariable(this->radius1, VariableDirection::ToClient);
-        registerVariable(this->foggy, VariableDirection::ToClient);
-        registerVariable(this->fogDensity, VariableDirection::ToClient);
-
-        registerVariable(this->tiltAt, VariableDirection::ToClient);
-        registerVariable(this->tiltBy, VariableDirection::ToClient);
-
-    }
-
     void SpicedAsteroidBelt::tick(float dt){
 
         this->create();
-        this->bAlive_ = false;
         this->destroyLater();
 
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.h	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidBelt.h	(revision 11736)
@@ -49,9 +49,6 @@
 #include "AsteroidMiningPrereqs.h"
 
-#include <string>
-#include <vector>
-#include "worldentities/ControllableEntity.h"
-
-#include "../../orxonox/worldentities/pawns/Pawn.h"
+#include "core/BaseObject.h"
+#include "tools/interfaces/Tickable.h"
 
 namespace orxonox // tolua_export
@@ -59,15 +56,13 @@
 
     // tolua_export
-    class _AsteroidMiningExport SpicedAsteroidBelt : public Pawn // need pawn to get tick for clean argument passing
+    class _AsteroidMiningExport SpicedAsteroidBelt : public BaseObject, public Tickable
     { // tolua_export
 
         public:
             SpicedAsteroidBelt(Context* context);// This constructor is for XML access only!
+            virtual ~SpicedAsteroidBelt();
 
-            virtual ~SpicedAsteroidBelt();
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void tick(float dt) override;
-
 
             inline void setCount(float s){this->count = s;}
@@ -109,6 +104,4 @@
         protected:
 
-            Context* context;
-
             float count; //!< Approximate number of asteroids
             float mDensity; //!< Approximate commonness of asteroids that yield stuff, value between 0 and 1;
@@ -131,6 +124,4 @@
 
         private:
-            void registerVariables();
-            
             virtual void create();
 
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.cc	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.cc	(revision 11736)
@@ -40,7 +40,4 @@
 
 
-#include "../../orxonox/worldentities/pawns/Pawn.h"
-#include "../../orxonox/worldentities/WorldEntity.h"
-
 #include "SpicedAsteroidField.h"
 #include "AsteroidMinable.h"
@@ -49,11 +46,8 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
 #include "core/XMLPort.h"
-#include "core/EventIncludes.h"
-#include "network/NetworkFunction.h"
 #include "util/Math.h"
 
-#include "../../orxonox/graphics/Billboard.h"
+#include "graphics/Billboard.h"
 
 
@@ -62,8 +56,7 @@
     RegisterClass(SpicedAsteroidField);
 
-    SpicedAsteroidField::SpicedAsteroidField(Context* context) : Pawn(context) {
+    SpicedAsteroidField::SpicedAsteroidField(Context* context) : BaseObject(context) {
 
         RegisterObject(SpicedAsteroidField);
-        this->context = context;
 
         // Default Values: 
@@ -76,23 +69,5 @@
         this->foggy = true; 
         this->fogDensity = 0.5;
-
-        this->registerVariables();
     }
-
-    SpicedAsteroidField::SpicedAsteroidField(Context* c, Vector3 p, int minS, int maxS, int w, int count, bool f, float mD, float fD): Pawn(c){
-
-        this->context = c;
-        this->position = p; 
-        this->minSize = minS; 
-        this->maxSize = maxS; 
-        this->radius = w; 
-        this->count = count; 
-        this->foggy = f; 
-
-        this->mDensity = mD;
-        this->fogDensity = fD; 
-
-    }
-
 
     SpicedAsteroidField::~SpicedAsteroidField(){
@@ -109,5 +84,5 @@
         for(int gertrud = 0; gertrud<count; ++gertrud){
 
-            AsteroidMinable* a = new AsteroidMinable(this->context);
+            AsteroidMinable* a = new AsteroidMinable(this->getContext());
 
             size = round(rnd()*(this->maxSize - this->minSize)) + this->minSize;
@@ -121,11 +96,9 @@
 
             bool spiced = (rnd() < (this->mDensity)); // Whether the asteroid does drop pickups etc. 
-            a->toggleDropStuff(spiced);
-            
-            a->setVelocity(this->getVelocity()); 
+            a->setDropStuff(spiced);
             
             // Fog is iplemented with billboards (as in asteroidField.lua, that bloke had the idea)
             if(this->foggy && mod(gertrud, 5) == 0){
-                Billboard* bb = new Billboard(this->context);
+                Billboard* bb = new Billboard(this->getContext());
                 bb->setPosition(this->position + relPos);
                 bb->setMaterial("Smoke/Smoke");
@@ -151,26 +124,7 @@
     }
 
-
-    void SpicedAsteroidField::XMLEventPort(Element& xmlelement, XMLPort::Mode mode){
-
-    }
-
-    void SpicedAsteroidField::registerVariables(){
-
-        registerVariable(this->count, VariableDirection::ToClient);
-        registerVariable(this->mDensity, VariableDirection::ToClient);
-        registerVariable(this->position, VariableDirection::ToClient);
-        registerVariable(this->maxSize, VariableDirection::ToClient);
-        registerVariable(this->minSize, VariableDirection::ToClient);
-        registerVariable(this->radius, VariableDirection::ToClient);
-        registerVariable(this->foggy, VariableDirection::ToClient);
-        registerVariable(this->fogDensity, VariableDirection::ToClient);
-
-    }
-
     void SpicedAsteroidField::tick(float dt){
 
         this->create();
-        this->bAlive_ = false;
         this->destroyLater();
     }
Index: code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.h	(revision 11735)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroidmining/SpicedAsteroidField.h	(revision 11736)
@@ -43,9 +43,6 @@
 #include "AsteroidMiningPrereqs.h"
 
-#include <string>
-#include <vector>
-
-#include "worldentities/ControllableEntity.h"
-#include "../../orxonox/worldentities/pawns/Pawn.h"
+#include "core/BaseObject.h"
+#include "tools/interfaces/Tickable.h"
 
 namespace orxonox // tolua_export
@@ -53,16 +50,13 @@
 
     // tolua_export
-    class _AsteroidMiningExport SpicedAsteroidField : public Pawn // need pawn to get tick for clean argument passing
+    class _AsteroidMiningExport SpicedAsteroidField : public BaseObject, public Tickable
     { // tolua_export
 
         public:
-            SpicedAsteroidField(Context* context);// This constructor is for XML access only!
-            SpicedAsteroidField(Context* c, Vector3 p, int minS, int maxS, int w, int count, bool f, float mD, float fD); 
+            SpicedAsteroidField(Context* context);
+            virtual ~SpicedAsteroidField();
 
-            virtual ~SpicedAsteroidField();
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void tick(float dt) override;
-
 
             inline void setCount(float s){this->count = s;}
@@ -92,6 +86,4 @@
         protected:
 
-            Context* context;
-
             float count; //!< Number of asteroids generated
             float mDensity; //!< Mineral density, between 0 and 1;
@@ -108,6 +100,4 @@
 
         private:
-            void registerVariables();
-
             virtual void create();
 
