diff --git a/js/models/fillGeometry.js b/js/models/fillGeometry.js
index c21c220a7ecff7eaea4f22a8d963c744f4bd84fb..130f3d6fa04073fc9596f020d7eb14ee5bfb1620 100644
--- a/js/models/fillGeometry.js
+++ b/js/models/fillGeometry.js
@@ -7,30 +7,31 @@ FillGeometry = Backbone.Model.extend({
 
     defaults: {
         material: new THREE.MeshLambertMaterial(
-            {color:0xffa500,
+            {color:0xf25536,
                 shading: THREE.FlatShading,
                 transparent:true,
                 opacity:0.5,
                 side:THREE.DoubleSide}),
         geometry: new THREE.BoxGeometry(100, 100, 100),
         filename: "Cube",
-        orientation: [0,0,0]
+        orientation: [0,0,0],
+        scale: [1.0,1.0,1.0]
     },
 
     initialize: function(){
 
         //bind events
         this.on("change:mesh", this.getBounds);
-        this.on("change:mesh", this.makeBoundingBoxHelper);
-        this.on("change:orientation", this.updateBoundingBox);
+        this.on("change:orientation change:scale", this.updateBoundingBox);
         this.on("change:geometry", this.buildNewMesh);
 
         this.buildNewMesh();
     },
 
     buildNewMesh:function(){
-        this.set({orientation:this.defaults.orientation}, {silent:true});//restore defaults
+        this.set({orientation:this.defaults.orientation, scale:this.defaults.scale}, {silent:true});//restore defaults
         var mesh = new THREE.Mesh(this.get("geometry"), this.get("material"));
+        this.makeBoundingBoxHelper(mesh);
         this.set({mesh: mesh});
 
         //send new geometry out to workers
@@ -44,12 +45,10 @@ FillGeometry = Backbone.Model.extend({
         this.set("bounds", this.get("geometry").boundingBox.clone());
     },
 
-    makeBoundingBoxHelper: function(){
-        var helper = new THREE.BoundingBoxHelper(this.get("mesh"), 0x000000);
-        this.set("boundingBoxHelper", helper);
+    makeBoundingBoxHelper: function(mesh){
+        var helper = new THREE.BoundingBoxHelper(mesh, 0x000000);
         helper.update();
-//        three.scene.add(helper.object);
-        this.trigger("change:boundingBoxHelper");
+        this.set("boundingBoxHelper", helper);
     },
 
     updateBoundingBox: function(){
@@ -58,9 +57,9 @@ FillGeometry = Backbone.Model.extend({
     },
 
     rotate: function(axis){
-        var orientation = this.get("orientation");
+        var orientation = this.get("orientation").slice(0);//make a copy so that set triggers change event
         var mesh = this.get("mesh");
-        var piOver2 = Math.Pi/2;
+        var piOver2 = Math.PI/2;
         if (axis == "x"){
             mesh.rotateX(piOver2);
             orientation[0] += piOver2;
@@ -71,7 +70,7 @@ FillGeometry = Backbone.Model.extend({
             mesh.rotateX(piOver2);
             orientation[2] += piOver2;
         }
-        this.trigger("change:orientation");
+        this.set("orientation", orientation);
     }
 });
 
diff --git a/js/models/threeModel.js b/js/models/threeModel.js
index e7f2480b68dcc11f5f28744824b3a7c1da1d98cd..9947e78e13f2b73f22b13f6f6ce561b0914fb75b 100644
--- a/js/models/threeModel.js
+++ b/js/models/threeModel.js
@@ -16,8 +16,6 @@ function ThreeModel(){
         camera.position.z = 500;
         scene.fog = new THREE.FogExp2(0xcccccc, 0.002);
 
-        drawRandomStuff();
-
         // lights
         var light = new THREE.DirectionalLight(0xffffff);
         light.position.set(1, 1, 1);
@@ -35,20 +33,20 @@ function ThreeModel(){
         window.addEventListener('resize', onWindowResize, false);
     }
 
-    function drawRandomStuff(){
-        var geometry = new THREE.CylinderGeometry(0, 10, 30, 4, 1);
-        var material = new THREE.MeshLambertMaterial({color:0xffffff, shading: THREE.FlatShading});
-
-        for ( var i = 0; i < 500; i ++ ) {
-            var mesh = new THREE.Mesh( geometry, material );
-            mesh.position.x = ( Math.random() - 0.5 ) * 1000;
-            mesh.position.y = ( Math.random() - 0.5 ) * 1000;
-            mesh.position.z = ( Math.random() - 0.5 ) * 1000;
-            mesh.updateMatrix();
-            mesh.matrixAutoUpdate = false;
-            scene.add(mesh);
-        }
-    }
+//    function drawRandomStuff(){
+//        var geometry = new THREE.CylinderGeometry(0, 10, 30, 4, 1);
+//        var material = new THREE.MeshLambertMaterial({color:0xffffff, shading: THREE.FlatShading});
+//
+//        for ( var i = 0; i < 500; i ++ ) {
+//            var mesh = new THREE.Mesh( geometry, material );
+//            mesh.position.x = ( Math.random() - 0.5 ) * 1000;
+//            mesh.position.y = ( Math.random() - 0.5 ) * 1000;
+//            mesh.position.z = ( Math.random() - 0.5 ) * 1000;
+//            mesh.updateMatrix();
+//            mesh.matrixAutoUpdate = false;
+//            scene.add(mesh);
+//        }
+//    }
 
     function onWindowResize(){
         camera.aspect = window.innerWidth/window.innerHeight;
diff --git a/js/threeViews/fillGeometryView.js b/js/threeViews/fillGeometryView.js
index b7506d35834a080da50304f94eb61767a7b62a62..18a7fb1da8b66bfbbc5288aa4347cc635b30383a 100644
--- a/js/threeViews/fillGeometryView.js
+++ b/js/threeViews/fillGeometryView.js
@@ -8,23 +8,47 @@ FillGeometryView = PushPullMeshView.extend({
     events: {
     },
 
+    boundsBox: new THREE.Mesh(new THREE.BoxGeometry(100, 100, 100)),
+    boxHelper: new THREE.BoxHelper(this.boundsBox),
+
     initialize: function(options){
 
         PushPullMeshView.prototype.initialize.apply(this, arguments);
 
         //bind events
-        this.listenTo(this.model, "change:geometry", this.replaceFillGeometry);
+        this.listenTo(this.model, "change:geometry", this.newFillGeometry);
         this.listenTo(this.model, "change:orientation", this.render);
+        this.listenTo(this.model, "change:bounds change:scale change:orientation", this.updateBounds);
 
-        this.replaceFillGeometry();
+        this.newFillGeometry();
+        this.drawBounds();
     },
 
-    replaceFillGeometry: function(){
+    newFillGeometry: function(){
         if (this.model.previous("mesh")) this.three.sceneRemove(this.model.previous("mesh"));
         this.three.sceneAdd(this.model.get("mesh"));
         this.three.render();
     },
 
+    drawBounds: function(){
+        this.boxHelper.material.color.set(0xf25536);
+        this.three.sceneAdd(this.boxHelper);
+        this.updateBounds();
+    },
+
+    updateBounds: function(){
+        var bounds = this.model.get("bounds");//this has not been scaled or rotated, as is when model was first imported
+        var max = bounds.max.toArray();
+        var min = bounds.min.toArray()
+        var size = numeric.sub(max, min);
+        var translation = numeric.mul(numeric.add(max, min), 0.5);
+        var geometry = new THREE.BoxGeometry(size[0], size[1], size[2]);
+        geometry.applyMatrix( new THREE.Matrix4().makeTranslation(translation[0], translation[1], translation[2]));
+        this.boundsBox.geometry = geometry;
+        this.boxHelper.update(this.boundsBox);
+        this.render();
+    },
+
     render: function(){
         this.three.render();
     }
diff --git a/js/threeViews/meshHandle.js b/js/threeViews/meshHandle.js
new file mode 100644
index 0000000000000000000000000000000000000000..3fc98f6181168aff12a3ce858d0b32de50086e1c
--- /dev/null
+++ b/js/threeViews/meshHandle.js
@@ -0,0 +1,13 @@
+/**
+ * Created by aghassaei on 1/18/15.
+ */
+
+//a draggable vector that moves a mesh face
+
+function MeshHandle(){
+
+}
+
+MeshHandle.prototype.destroy() = function{
+
+}
\ No newline at end of file