Index: branches/collision_detection/src/lib/collision_detection/bv_tree.h
===================================================================
--- branches/collision_detection/src/lib/collision_detection/bv_tree.h	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/bv_tree.h	(revision 5716)
@@ -39,6 +39,6 @@
   virtual ~BVTree();
 
-  virtual void spawnBVTree(int depth, sVec3D *verticesList, const int length) = 0;
-  virtual void spawnBVTree(int depth, const modelInfo& modelInf) = 0;
+  virtual void spawnBVTree(sVec3D *verticesList, const int length) = 0;
+  virtual void spawnBVTree(const modelInfo& modelInf) = 0;
   virtual void flushTree() = 0;
 
Index: branches/collision_detection/src/lib/collision_detection/bv_tree_node.h
===================================================================
--- branches/collision_detection/src/lib/collision_detection/bv_tree_node.h	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/bv_tree_node.h	(revision 5716)
@@ -26,6 +26,6 @@
   virtual ~BVTreeNode();
 
-  virtual void spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length ) = 0;
-  virtual void spawnBVTree(const int depth, const modelInfo& modInfo, const int* triangleIndexes, unsigned int length) = 0;
+  virtual void spawnBVTree(const sVec3D *verticesList, unsigned int length ) = 0;
+  virtual void spawnBVTree(const modelInfo& modInfo, const int* triangleIndexes, unsigned int length) = 0;
 
   virtual const BoundingVolume* getBV() const = 0;
Index: branches/collision_detection/src/lib/collision_detection/cd_engine.cc
===================================================================
--- branches/collision_detection/src/lib/collision_detection/cd_engine.cc	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/cd_engine.cc	(revision 5716)
@@ -166,6 +166,5 @@
 {
   if ( this->rootTree == NULL)
-    this->rootTree = new OBBTree();
-  this->rootTree->spawnBVTree(depth, vertices, numVertices);
+    this->rootTree = new OBBTree(depth, vertices, numVertices);
 }
 
Index: branches/collision_detection/src/lib/collision_detection/obb_tree.cc
===================================================================
--- branches/collision_detection/src/lib/collision_detection/obb_tree.cc	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/obb_tree.cc	(revision 5716)
@@ -31,19 +31,19 @@
  *  standard constructor
 */
-OBBTree::OBBTree ()
+OBBTree::OBBTree(int depth, sVec3D *verticesList, const int length)
+  : BVTree()
 {
+  this->depth = depth;
   this->init();
+  this->spawnBVTree(verticesList, length);
 }
 
-OBBTree::OBBTree(int depth, sVec3D *verticesList, const int length)
+
+OBBTree::OBBTree(int depth, const modelInfo& modelInf)
+  : BVTree()
 {
+  this->depth = depth;
   this->init();
-  this->spawnBVTree(depth, verticesList, length);
-}
-
-OBBTree::OBBTree(int depth, const modelInfo& modInfo)
-{
-  this->init();
-  this->spawnBVTree(depth, modInfo);
+  this->spawnBVTree(modelInf);
 }
 
@@ -53,7 +53,5 @@
 {
   this->setClassID(CL_OBB_TREE, "OBBTree");
-
   this->rootNode = NULL;
-
   this->id = 0;
 }
@@ -69,5 +67,5 @@
 
 
-void OBBTree::spawnBVTree(int depth, sVec3D *verticesList, const int length)
+void OBBTree::spawnBVTree(sVec3D *verticesList, const int length)
 {
   if( unlikely(this->rootNode != NULL))
@@ -78,9 +76,9 @@
   OBBTreeNode* node = new OBBTreeNode(*this, depth);
   this->rootNode = node;
-  this->rootNode->spawnBVTree(--depth, verticesList, length);
+  this->rootNode->spawnBVTree(verticesList, length);
 }
 
 
-void OBBTree::spawnBVTree(int depth, const modelInfo& modelInf)
+void OBBTree::spawnBVTree(const modelInfo& modelInf)
 {
   if( unlikely(this->rootNode != NULL))
@@ -97,5 +95,5 @@
     triangleIndexes[i] = i;
 
-  this->rootNode->spawnBVTree(--depth, modelInf, triangleIndexes, modelInf.numTriangles);
+  this->rootNode->spawnBVTree(modelInf, triangleIndexes, modelInf.numTriangles);
 }
 
@@ -157,5 +155,5 @@
     }
 
-  this->spawnBVTree(3, vertList, length);
+  this->spawnBVTree(vertList, length);
 
   PRINT(0)("=  Spawning Tree: Finished\n");
Index: branches/collision_detection/src/lib/collision_detection/obb_tree.h
===================================================================
--- branches/collision_detection/src/lib/collision_detection/obb_tree.h	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/obb_tree.h	(revision 5716)
@@ -20,5 +20,4 @@
 
   public:
-    OBBTree();
     OBBTree(int depth, sVec3D *verticesList, const int length);
     OBBTree(int depth, const modelInfo& modInfo);
@@ -26,6 +25,6 @@
     void init();
 
-    virtual void spawnBVTree(int depth, sVec3D *verticesList, const int length);
-    virtual void spawnBVTree(int depth, const modelInfo& modelInf);
+    virtual void spawnBVTree(sVec3D *verticesList, const int length);
+    virtual void spawnBVTree(const modelInfo& modelInf);
     virtual void flushTree();
 
@@ -43,4 +42,5 @@
     OBBTreeNode*         rootNode;                        //!< reference to the root node of the tree
     int                  id;
+    int                  depth;                           //!< the depth of the tree to generate
 };
 
Index: branches/collision_detection/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- branches/collision_detection/src/lib/collision_detection/obb_tree_node.cc	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/obb_tree_node.cc	(revision 5716)
@@ -79,4 +79,5 @@
     OBBTreeNode_sphereObj = gluNewQuadric();
 }
+
 
 /**
@@ -114,6 +115,5 @@
  * on the triangle informations (triangle soup not polygon soup)
  */
-void OBBTreeNode::spawnBVTree(const int depth, const modelInfo& modelInf,
-                              const int* triangleIndexes, unsigned int length)
+void OBBTreeNode::spawnBVTree(const modelInfo& modelInf, const int* triangleIndexes, unsigned int length)
 {
   sVec3D* verticesList;
@@ -172,5 +172,5 @@
  * this function creates an Bounding Volume tree from a vertices soup (no triangle data)
  */
-void OBBTreeNode::spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length)
+void OBBTreeNode::spawnBVTree(const sVec3D *verticesList, unsigned int length)
 {
 //   PRINTF(3)("\n");
@@ -281,5 +281,4 @@
         r = *tmpVec;
 
-
         covariance[j][k] = facelet[i] / (12.0f * face) * (9.0f * centroid[i][j] * centroid[i][k] + p[j] * p[k] +
             q[j] * q[k] + r[j] * r[k]) - center[j] * center[k];
Index: branches/collision_detection/src/lib/collision_detection/obb_tree_node.h
===================================================================
--- branches/collision_detection/src/lib/collision_detection/obb_tree_node.h	(revision 5713)
+++ branches/collision_detection/src/lib/collision_detection/obb_tree_node.h	(revision 5716)
@@ -31,8 +31,6 @@
     virtual inline const BoundingVolume* getBV() const { return (BoundingVolume*)this->bvElement; }
 
-
-    virtual void spawnBVTree(const int depth, const sVec3D *verticesList, unsigned int length);
-    virtual void spawnBVTree(const int depth, const modelInfo& modelInf,
-                             const int* triangleIndexes, unsigned int length);
+    virtual void spawnBVTree(const sVec3D *verticesList, unsigned int length);
+    virtual void spawnBVTree(const modelInfo& modelInf, const int* triangleIndexes, unsigned int length);
 
     virtual void collideWith(BVTreeNode* treeNode, WorldEntity* nodeA, WorldEntity* nodeB);
@@ -48,5 +46,4 @@
     void calculateBoxEigenvectors(OBB& box, const modelInfo& modelInf, const int* triangleIndexes, unsigned int length);
     void calculateBoxAxis(OBB& box, const modelInfo& modelInf, const int* triangleIndexes, unsigned int length);
-
     void forkBox(OBB& box);
 
Index: branches/collision_detection/src/orxonox.cc
===================================================================
--- branches/collision_detection/src/orxonox.cc	(revision 5713)
+++ branches/collision_detection/src/orxonox.cc	(revision 5716)
@@ -57,5 +57,5 @@
 #include <string.h>
 
-int verbose = 4;
+int verbose = 5;
 
 using namespace std;
