diff --git a/js/models/ThreeModel.js b/js/models/ThreeModel.js
index ee30034f6794856e7858d956a30ed1b1eb0aaf98..39768f44fac7ba222db5a3dae0cdde1bb9d7e281 100644
--- a/js/models/ThreeModel.js
+++ b/js/models/ThreeModel.js
@@ -66,10 +66,7 @@ function ThreeModel(){
 
     function sceneRemove(object, type){
 
-        var objectToRemove = object;
-        if (object.parent && object.parent.type != "Scene") {
-            objectToRemove = object.parent;
-        }
+        var objectToRemove = getParentObject(object);
 
         if (type == "cell"){
             cells.splice(cells.indexOf(objectToRemove.children[0]), 1);
@@ -85,18 +82,28 @@ function ThreeModel(){
 
     function removeAllCells(){
         _.each(cells, function(cell){
-            sceneRemove(cell, "cell");
+            var objectToRemove = getParentObject(cell);
+            scene.remove(objectToRemove);
         });
         _.each(parts, function(part){
-            sceneRemove(part, "part");
+            scene.remove(part);
         });
         _.each(invCells, function(cell){
-            sceneRemove(cell, "inverseCell");
+            scene.remove(cell);
         });
         cells.splice(0, cells.length);
+        invCells.splice(0, invCells.length);
         parts.splice(0, parts.length);
     }
 
+    function getParentObject(object){
+        var objectToRemove = object;
+        if (object.parent && object.parent.type != "Scene") {
+            objectToRemove = object.parent;
+        }
+        return objectToRemove;
+    }
+
     function render(){
         renderer.render(scene, camera);
     }