Index: branches/coll_rect/src/lib/collision_reaction/collision_filter.cc
===================================================================
--- branches/coll_rect/src/lib/collision_reaction/collision_filter.cc	(revision 9896)
+++ branches/coll_rect/src/lib/collision_reaction/collision_filter.cc	(revision 9898)
@@ -151,7 +151,30 @@
 
 
+  /**
+  * tests if the owner WorldEntity is listening to collisions from another specif WorldEntity entity
+  *  @param entity WorldEntity to test against
+  *
+  * This is the most important interface function of this class: it performs a check and returns true
+  * if the WorldEntity entity is actualy responsive for a certain other WorldEntity
+   */
+  bool CollisionFilter::operator()(const WorldEntity* entity, const CREngine::ReactionType type) const
+  {
+    // if there are no installed criterions just ommit and
+    if( this->bReactive())
+      return false;
 
-}
+    // goes through all registered filter criterions and looks for matches
+    std::vector<ClassID>::const_iterator it = this->_filters[type].begin();
+    for(; it != this->_filters[type].end(); i++ )
+      if( unlikely(entity->isA(*it)))
+        return true;
+
+    return false;
+  }
 
 
 
+} // namespace end
+
+
+
Index: branches/coll_rect/src/lib/collision_reaction/collision_filter.h
===================================================================
--- branches/coll_rect/src/lib/collision_reaction/collision_filter.h	(revision 9896)
+++ branches/coll_rect/src/lib/collision_reaction/collision_filter.h	(revision 9898)
@@ -22,5 +22,4 @@
 
   class CollisionReaction;
-
 
 
@@ -49,13 +48,14 @@
     /* Defines Operators */
     bool operator()(const WorldEntity* entity) const;
+    bool operator()(const WorldEntity* entity, const CREngine::ReactionType type) const;
 
 
     /* Collision Reaction subscription unsubscription Block */
   public:
-    void subscribeReaction(CoRe::CREngine::ReactionType type, const ClassID& target1);
-    void subscribeReaction(CoRe::CREngine::ReactionType type, const ClassID& target1, const ClassID& target2);
-    void subscribeReaction(CoRe::CREngine::ReactionType type, const ClassID& target1, const ClassID& target2, const ClassID& target3);
+    void subscribeReaction(CREngine::ReactionType type, const ClassID& target1);
+    void subscribeReaction(CREngine::ReactionType type, const ClassID& target1, const ClassID& target2);
+    void subscribeReaction(CREngine::ReactionType type, const ClassID& target1, const ClassID& target2, const ClassID& target3);
 
-    void unsubscribeReaction(CoRe::CREngine::ReactionType type);
+    void unsubscribeReaction(CREngine::ReactionType type);
     void unsubscribeReactions();
 
Index: branches/coll_rect/src/lib/collision_reaction/collision_tube.cc
===================================================================
--- branches/coll_rect/src/lib/collision_reaction/collision_tube.cc	(revision 9896)
+++ branches/coll_rect/src/lib/collision_reaction/collision_tube.cc	(revision 9898)
@@ -111,4 +111,14 @@
 
 
+
+  /**
+   * handles all collisions in registered in this tube
+   */
+  void CollisionTube::handleCollisions()
+  {
+    //
+  }
+
+
   /**
    * checks if two objects are
@@ -124,13 +134,6 @@
 
 
-  /**
-   * handles all collisions in registered in this tube
-   */
-  void CollisionTube::handleCollisions()
-  {
-    //
-  }
 
 
-}
+}// namespace end
 
Index: branches/coll_rect/src/lib/collision_reaction/collision_tube.h
===================================================================
--- branches/coll_rect/src/lib/collision_reaction/collision_tube.h	(revision 9896)
+++ branches/coll_rect/src/lib/collision_reaction/collision_tube.h	(revision 9898)
@@ -48,14 +48,19 @@
     ObjectListDeclaration(CollisionTube);
 
+
+    /* Constructor/Deconstructor/Singleton Interface */
   public:
+    inline static CollisionTube* getInstance() { if( CollisionTube::instance != NULL) CollisionTube::instance = new CollisionTube(); return CollisionTube::instance; }
     virtual ~CollisionTube();
 
-    inline static CollisionTube* getInstance() { if( CollisionTube::instance != NULL) CollisionTube::instance = new CollisionTube(); return CollisionTube::instance; }
+  private:
+    CollisionTube();
+    CollisionTube(const CollisionTube& tube) {}
 
-    /** @returns true if at least one of both WorldEntities are subscribed for a collision check */
-    inline bool isReactive(const WorldEntity& entityA, const WorldEntity& entityB) const
-    { return (entityA.isReactive() && entityB.isReactive()); }
-    bool needCollisionChecking(const WorldEntity& entityA, const WorldEntity& entityB);
+    static CollisionTube*          instance;            //!< the singleton instance
 
+
+    /* Collision Handling */
+  public:
     void registerCollisionEvent(WorldEntity* entityA, WorldEntity* entityB, BoundingVolume* bvA, BoundingVolume* bvB);
     void registerCollisionEvent(CREngine::CollisionType type, WorldEntity* entity, WorldEntity* groundEntity,
@@ -64,16 +69,15 @@
     void handleCollisions();
 
-
-  private:
-    /* private std constructor since this is a singleton class */
-    CollisionTube();
-    /* private copy constructor so this object can't be passed as a */
-    CollisionTube(const CollisionTube& tube) {}
-
-
   private:
     std::vector<Collision*>        _collisionList;      //!< the list of collisions since the last processing
 
-    static CollisionTube*          instance;            //!< the singleton instance
+
+    /* Misc State Informations */
+  public:
+    /** @returns true if at least one of both WorldEntities are subscribed for a collision check */
+    inline bool isReactive(const WorldEntity& entityA, const WorldEntity& entityB) const
+      { return (entityA.isReactive() && entityB.isReactive()); }
+    bool needCollisionChecking(const WorldEntity& entityA, const WorldEntity& entityB);
+
   };
 
