Index: /orxonox/trunk/src/story_entities/world.cc
===================================================================
--- /orxonox/trunk/src/story_entities/world.cc	(revision 4978)
+++ /orxonox/trunk/src/story_entities/world.cc	(revision 4979)
@@ -133,5 +133,5 @@
   SoundEngine::getInstance()->flushAllBuffers();
   SoundEngine::getInstance()->flushAllSources();
-  FastFactory::flushAll();
+  FastFactory::flushAll(true);
 
   // erease everything that is left.
@@ -850,5 +850,5 @@
       // tick the engines
       AnimationPlayer::getInstance()->tick(this->dtS);
-      if (this->cycle > 5)
+//      if (this->cycle > 5)
         PhysicsEngine::getInstance()->tick(this->dtS);
 
Index: /orxonox/trunk/src/util/fast_factory.cc
===================================================================
--- /orxonox/trunk/src/util/fast_factory.cc	(revision 4978)
+++ /orxonox/trunk/src/util/fast_factory.cc	(revision 4979)
@@ -81,5 +81,4 @@
 }
 
-
 /**
  * searches for a FastFactory
@@ -135,4 +134,5 @@
   while (tmpFac != NULL)
   {
+    printf("DELETEING ALL OF %s\n",tmpFac->getName());
     tmpFac->flush(hardFLUSH);
     tmpFac = tmpFac->next;
@@ -140,5 +140,4 @@
 }
 
-
 /**
  * ereases all the remaining containers, without deleting the stored Objects inside of them.
@@ -152,6 +151,9 @@
     delMember = tmpMember;
     tmpMember = tmpMember->next;
-    if (unlikely(hardFLUSH == true))
+    if (hardFLUSH)
+    {
+      PRINTF(1)("COOL\n");
       delete delMember->objectPointer;
+    }
     delete delMember;
   }
@@ -267,5 +269,4 @@
       tmpFac = tmpFac->next;
     }
-
-  }
-}
+  }
+}
Index: /orxonox/trunk/src/util/fast_factory.h
===================================================================
--- /orxonox/trunk/src/util/fast_factory.h	(revision 4978)
+++ /orxonox/trunk/src/util/fast_factory.h	(revision 4979)
@@ -15,6 +15,9 @@
  * afterwards one can just retrieve an Object form the Class with
  * this->bulletFactory->resurrect();  // this returns a BaseObject an Object of the class.
+ *
+ * The big difference to the FastFactory-class is, that this one is used more for the purpose
+ * of fast game-interaction than for loading. althought one can also load FastFactorized classes
+ * it is not the main topic.
  */
-
 
 #ifndef _FAST_FACTORY_H
Index: /orxonox/trunk/src/util/garbage_collector.cc
===================================================================
--- /orxonox/trunk/src/util/garbage_collector.cc	(revision 4978)
+++ /orxonox/trunk/src/util/garbage_collector.cc	(revision 4979)
@@ -25,5 +25,4 @@
 
 using namespace std;
-
 
 GarbageCollector* GarbageCollector::singletonRef = 0;
@@ -119,9 +118,5 @@
 void GarbageCollector::update()
 {
-  if (this->time < this->delay)
-  {
-    return;
-  }
-  if (this->collectedObjects == NULL)
+  if (this->time < this->delay || this->collectedObjects == NULL)
     return;
   else
@@ -131,8 +126,8 @@
     while (tmpC != NULL)
     {
-      WorldEntity* entity = dynamic_cast<WorldEntity*>(tmpC->objectPointer);
+      //WorldEntity* entity = dynamic_cast<WorldEntity*>(tmpC->objectPointer);
       //State::getWorldEntityList()->remove(entity);
-      entity->remove();
-      FastFactory::kill(entity, true);
+      //entity->remove();
+      FastFactory::kill(tmpC->objectPointer, true);
 
       moveC = tmpC->next;
Index: /orxonox/trunk/src/util/garbage_collector.h
===================================================================
--- /orxonox/trunk/src/util/garbage_collector.h	(revision 4978)
+++ /orxonox/trunk/src/util/garbage_collector.h	(revision 4979)
@@ -1,9 +1,4 @@
 /*!
  * @file garbage_collector.h
- * Definition of the proto class template, used quickly start work
- * @todo Example: this shows how to use simply add a Marker that here has to be done something.
- *
- *  The Protoclass exists, to help you quikly getting the run for how to develop in orxonox.
- *  It is an example for the CODING-CONVENTION, and a starting-point for every class.
  */
 
@@ -17,6 +12,7 @@
 //! this class maintains the garbage collection.
 /**
-   the class is been ticked by the world.cc and goes through the
-   world_entity list to clean out all unused entities.
+ * you can pass everything to this class that you want to be collected
+ * just use GarbageCollector->collect(POINTER); to pass a collectable to the GarbageCollector
+ * it will then be handled acording to the class
 */
 class GarbageCollector : public BaseObject {
Index: /orxonox/trunk/src/world_entities/weapons/projectile.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/projectile.cc	(revision 4978)
+++ /orxonox/trunk/src/world_entities/weapons/projectile.cc	(revision 4979)
@@ -39,4 +39,6 @@
   this->lifeCycle = 0.0;
   this->lifeSpan = 0.75f; /* sec */
+
+  this->remove();
 }
 
Index: /orxonox/trunk/src/world_entities/weapons/test_gun.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/test_gun.cc	(revision 4978)
+++ /orxonox/trunk/src/world_entities/weapons/test_gun.cc	(revision 4979)
@@ -33,4 +33,6 @@
 #include "animation3d.h"
 #include "sound_engine.h"
+
+#include "null_parent.h"
 
 #include "fast_factory.h"
@@ -175,4 +177,5 @@
   Projectile* pj =  dynamic_cast<Projectile*>(this->getProjectileFactory()->resurrect());
 
+  pj->setParent(NullParent::getInstance());
 /*
   PNode* target = this->getWeaponManager()->getFixedTarget();
Index: /orxonox/trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- /orxonox/trunk/src/world_entities/weapons/weapon.cc	(revision 4978)
+++ /orxonox/trunk/src/world_entities/weapons/weapon.cc	(revision 4979)
@@ -127,15 +127,18 @@
   this->projectileFactory = FastFactory::searchFastFactory(projectile);
   if (this->projectileFactory == NULL)
+  {
+    PRINTF(1)("unable to find FastFactory for the Projectile.\n");
     return;
+  }
   else
   {
     // grabbing Parameters from the Projectile to have them at hand here.
-    this->projectileFactory->prepare(1);
     Projectile* pj = dynamic_cast<Projectile*>(this->projectileFactory->resurrect());
     this->minCharge = pj->getEnergyMin();
     this->maxCharge = pj->getEnergyMax();
     this->chargeable = pj->isChageable();
-  }
-};
+    this->projectileFactory->kill(pj);
+  }
+}
 
 /**
