Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBlox.cc	(revision 12360)
@@ -242,4 +242,20 @@
             this->stones_.push_back(this->futureWall_->getStone(i));
         }
+
+        for(OrxoBloxWall* wall : this->activeWalls_) {
+            if(wall->isEmpty()) {
+                wall->destroy();
+            }
+            int NumberOfStones = 0;
+            for(int i = 0; i < 10; i++) {
+                if(wall->getStone(i) == nullptr) {
+                    continue;
+                }
+                else {
+                    NumberOfStones++;
+                }
+
+            }
+        }
         //new location of ship
         //new amount of balls
@@ -283,7 +299,7 @@
             orxout() << "Checking a stone" << endl;
             const Vector3& StonePosition = someStone->getPosition(); //!< Saves the position of the currentStone
-            int size = someStone->getSize();
-            if((BallPosition.x >= StonePosition.x - size && BallPosition.x <= StonePosition.x + size) && 
-                (BallPosition.z >= StonePosition.z - size && BallPosition.z <= StonePosition.z + size)) {
+            int size = someStone->getSize()/2;
+            if((BallPosition.x - Ball->getRadius() >= StonePosition.x - size && BallPosition.x + Ball->getRadius() <= StonePosition.x + size) && 
+                (BallPosition.z - Ball->getRadius() >= StonePosition.z - size && BallPosition.z + Ball->getRadius() <= StonePosition.z + size)) {
                 orxout() << "FOUND ONE" << endl;
                 return someStone;
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.cc	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.cc	(revision 12360)
@@ -67,4 +67,5 @@
         this->relMercyOffset_ = 0.05f;
         this->orxoblox_ = this->getOrxoBlox();
+        this->radius_ = 1.5;
 
         this->registerVariables();
@@ -302,8 +303,4 @@
         Vector3 myPosition = this->getPosition();
         orxout() << "About to Bounce >D" << endl;
-        //if (positionOtherObject.y < 0) {
-            //this.destroy()
-        //}S
-        //else {
         
             int distance_X = myPosition.x - positionStone.x;
@@ -322,9 +319,9 @@
             if (distance_X < distance_Z) {
                 velocity.z = -velocity.z;
-                orxout() << "z" << endl;
+                orxout() << "z" << endl;  
             }
-            if (distance_Z < distance_X) {
+            else if (distance_Z < distance_X) {
                 velocity.x = -velocity.x;
-                orxout() << "x" << endl;
+                orxout() << "x" << endl;       
             }
             else {
@@ -332,6 +329,8 @@
                 velocity.z = -velocity.z;
                 orxout() << "both" << endl;
-            }
+            }                                  
+
             this->setVelocity(velocity);
+            this->setPosition(myPosition);
     }
 
@@ -346,5 +345,6 @@
         Bounce(Stone);
         //if(otherObject->getHealth() <= 0) {
-            Stone->destroy();
+        Stone->destroy();
+
         //}
         //otherObject->reduceHealth();
@@ -362,4 +362,8 @@
     }
 
+    float OrxoBloxBall::getRadius() {
+        return this->radius_;
+    }
+
 
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.h	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxBall.h	(revision 12360)
@@ -134,6 +134,6 @@
             void setDefBoundarySound(const std::string& engineSound);
             const std::string& getDefBoundarySound();
+            float getRadius();
 
-            unsigned int getHealth();
 
         private:
@@ -141,4 +141,5 @@
 
             OrxoBlox* getOrxoBlox();
+            float radius_;
             float fieldWidth_; //!< The width of the playing field.
             float fieldHeight_; //!< The height of the playing field.
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.cc	(revision 12360)
@@ -29,3 +29,7 @@
         this->health_ -= 1;
     }
+
+    float OrxoBloxStones::getSize() {
+        return this->size_;
+    }
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxStones.h	(revision 12360)
@@ -67,4 +67,6 @@
 
             void reduceHealth();
+
+            float getSize();
                 
         private:
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.cc	(revision 12360)
@@ -98,3 +98,21 @@
         return num_Stones_;
     }
+
+    void OrxoBloxWall::setNumberOfStones(int number) {
+        this->num_Stones_ = number;
+    }
+
+    bool OrxoBloxWall::isEmpty() {
+        if (num_Stones_ == 0) {
+            return true;
+        }
+        return false;
+    }
+
+    void OrxoBloxWall::reduceNumberOfStones() {
+        if(num_Stones_ == 0) {
+            orxout() << "Wanted to reduce number of stones, but there were none" << endl;
+        }
+        this->num_Stones_ -= 1;
+    }
 }
Index: code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h
===================================================================
--- code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h	(revision 12359)
+++ code/branches/OrxoBlox_FS19/src/modules/OrxoBlox/OrxoBloxWall.h	(revision 12360)
@@ -43,4 +43,7 @@
                 { assert(orxoblox); orxoblox_ = orxoblox; }
             int getNumberOfStones();
+            bool isEmpty();
+            void reduceNumberOfStones();
+            void setNumberOfStones(int number);
         private:
             void createWall(void);
