diff --git a/js/main.js b/js/main.js
index e322e1276ea927ea475b8bc11e805c289dccc975..094b51c66b00d0ab2a13da161f97eea275f0a480 100644
--- a/js/main.js
+++ b/js/main.js
@@ -5,22 +5,23 @@
 
 $(function(){
 
+    window.workers = persistentWorkers(8);
+
     three = new ThreeView();
 
     //init models and views
     var fillGeometry = new FillGeometry();//singleton
+    three.setFillGeometry(fillGeometry);
     new ImportView({model: fillGeometry});
 
     lattice = new Lattice();
 
 
-    three.setFillGeometry(fillGeometry);
 
 
-    //window.fillGeometry.set({geometry:"stuff"});
 
     setupNavBar();
-    workers = persistentWorkers(8);
+
 
 
 
diff --git a/js/models/fillGeometry.js b/js/models/fillGeometry.js
index 4ccbd281b255e58fefe09ca1d8cf36d1c4e894dc..c21c220a7ecff7eaea4f22a8d963c744f4bd84fb 100644
--- a/js/models/fillGeometry.js
+++ b/js/models/fillGeometry.js
@@ -48,7 +48,7 @@ FillGeometry = Backbone.Model.extend({
         var helper = new THREE.BoundingBoxHelper(this.get("mesh"), 0x000000);
         this.set("boundingBoxHelper", helper);
         helper.update();
-        three.scene.add(helper.object);
+//        three.scene.add(helper.object);
         this.trigger("change:boundingBoxHelper");
     },
 
diff --git a/js/persistentWorkers.js b/js/persistentWorkers.js
index 31d65056e700f084664bcac535e63b6dcbda7a4f..23349ec1a449f175a1fd98c4e52e1ac94e413a97 100644
--- a/js/persistentWorkers.js
+++ b/js/persistentWorkers.js
@@ -105,5 +105,4 @@ function persistentWorkers(numWorkers){
     }
 
     return {map:map, allWorkers:allWorkers};//return all public methods and vars
-
 }
\ No newline at end of file
diff --git a/js/views/importView.js b/js/views/importView.js
index e0b2e2126720e2965cb9d196fa2cd1c47f330b8d..a1b023cd80ef34d13dd4f2497a093825e4280130 100644
--- a/js/views/importView.js
+++ b/js/views/importView.js
@@ -17,7 +17,7 @@ ImportView = Backbone.View.extend({
     initialize: function(){
 
         _.bindAll(this, "render", "onMeshLoad");
-        this.model.bind("change:filename change:boundingBoxHelper", this.render);//boundingBoxHelper covers orientation
+        this.listenTo(this.model, "change:filename change:boundingBoxHelper", this.render);//boundingBoxHelper covers orientation
 
         this.render();
     },
diff --git a/js/views/threeView.js b/js/views/threeView.js
index a71cc965153a43be66ee1e7f31af1b278dcd9ab5..8684c4f53ad0d3322245a4fa36f80ee522e50ec6 100644
--- a/js/views/threeView.js
+++ b/js/views/threeView.js
@@ -1,4 +1,6 @@
-
+/**
+ * Created by aghassaei on 1/16/15.
+ */
 
 ThreeView = Backbone.View.extend({
 
@@ -10,7 +12,7 @@ ThreeView = Backbone.View.extend({
 
     initialize: function(){
 
-        _.bindAll(this, "render", "animate", "onWindowResize");
+        _.bindAll(this, "render", "animate", "onWindowResize", "clearAll");
 
         this.camera.position.z = 500;
         this.scene.fog = new THREE.FogExp2( 0xcccccc, 0.002);
@@ -55,14 +57,16 @@ ThreeView = Backbone.View.extend({
         }
     },
 
-    setFillGeometry: function(fillGeometry){
-        var self = this;
-        fillGeometry.bind("change:geometry", function(){
-            if (fillGeometry.previous("mesh")) self.scene.remove(fillGeometry.previous("mesh"));
-            self.render();
-        });
-        this.scene.add(fillGeometry.get("mesh"));
-        fillGeometry.bind("change:mesh change:orientation", this.render);
+    setFillGeometry: function(fillGeometry){//call this once
+        this.fillGeometry = fillGeometry;
+        this.listenTo(fillGeometry, "change:geometry", this.replaceFillGeometry);
+        this.listenTo(fillGeometry, "change:orientation", this.render);
+        this.replaceFillGeometry();
+    },
+
+    replaceFillGeometry: function(){
+        if (this.fillGeometry.previous("mesh")) this.scene.remove(this.fillGeometry.previous("mesh"));
+        this.scene.add(this.fillGeometry.get("mesh"));
         this.render();
     },