diff --git a/js/fea/dmaCell.js b/js/fea/dmaCell.js
index 272571ba771f4947e4f2389dff64180270dbde32..715029db7a651a2a2a99ce9cb5d3cb58082afc91 100644
--- a/js/fea/dmaCell.js
+++ b/js/fea/dmaCell.js
@@ -7,21 +7,33 @@
 
 (function () {
 
+    var octHeight = 3*30/8*Math.sqrt(5);
+
     var cellGeometry1 = new THREE.OctahedronGeometry(30/Math.sqrt(2));
     cellGeometry1.applyMatrix(new THREE.Matrix4().makeRotationZ(-3*Math.PI/12));
     cellGeometry1.applyMatrix(new THREE.Matrix4().makeRotationX(Math.asin(2/Math.sqrt(2)/Math.sqrt(3))));
 
     var cellGeometry2 = cellGeometry1.clone();
 
-    cellGeometry1.applyMatrix(new THREE.Matrix4().makeTranslation(0,-30/Math.sqrt(3),30/2.5));
+    cellGeometry1.applyMatrix(new THREE.Matrix4().makeTranslation(0,-30/Math.sqrt(3),octHeight/2));
     cellGeometry2.applyMatrix(new THREE.Matrix4().makeRotationZ(Math.PI));
-    cellGeometry2.applyMatrix(new THREE.Matrix4().makeTranslation(0,-30/Math.sqrt(3),30/2.5));
+    cellGeometry2.applyMatrix(new THREE.Matrix4().makeTranslation(0,30/Math.sqrt(3),octHeight/2));
 
     var cellMaterials = [new THREE.MeshNormalMaterial(), new THREE.MeshBasicMaterial({color:0x000000, wireframe:true})];
 
-    function Cell() {
+    function Cell(position) {
+
+        if ((position.z/octHeight)%2==0){
+            this.mesh = THREE.SceneUtils.createMultiMaterialObject(cellGeometry1, cellMaterials);
+        } else {
+            this.mesh = THREE.SceneUtils.createMultiMaterialObject(cellGeometry2, cellMaterials);
+        }
+        this.mesh.position.x = position.x;
+        this.mesh.position.y = position.y;
+        this.mesh.position.z = position.z;
+
+        this._draw();
 
-        this.mesh = THREE.SceneUtils.createMultiMaterialObject(cellGeometry1, cellMaterials);
     //    this.parts = this._createParts(nodes, config);
     }
 
@@ -33,7 +45,7 @@
     //    return parts;
     //};
 
-    Cell.prototype.draw = function(){
+    Cell.prototype._draw = function(){
         window.three.sceneAdd(this.mesh);
     };
 
diff --git a/js/models/lattice.js b/js/models/lattice.js
index 5f07471251a3103f50560bc8fe0d875332b4e0eb..8f0033a4e41bf61cdad3c25e4cdf61b735d31d3b 100644
--- a/js/models/lattice.js
+++ b/js/models/lattice.js
@@ -20,8 +20,7 @@ Lattice = Backbone.Model.extend({
     },
 
     addCell: function(){
-        var cell = new Cell();
-        cell.draw();
+        new Cell(new THREE.Vector3(0,0,0));
         window.three.render();
     },
 
diff --git a/js/models/threeModel.js b/js/models/threeModel.js
index 0acd5495955ae210daf83e10587fb92f4ce0cef2..06c4b376beb0f3c9d04bf07c3b058354ab21dd4e 100644
--- a/js/models/threeModel.js
+++ b/js/models/threeModel.js
@@ -49,7 +49,6 @@ function ThreeModel(){
         scene.add(object);
         if (noInteraction) return;
         objects.push(object);
-        console.log(objects)
     }
 
     function sceneRemove(object){
diff --git a/js/threeViews/threeView.js b/js/threeViews/threeView.js
index 7fac69a55ccaf8991e5e23c16f808b88380e003f..0a371ad5b0a1f83b3dad73d8c403251a0ab158c9 100644
--- a/js/threeViews/threeView.js
+++ b/js/threeViews/threeView.js
@@ -46,6 +46,7 @@ ThreeView = Backbone.View.extend({
         this.highlighter = new THREE.Mesh(highlightGeometry,
             new THREE.MeshBasicMaterial({side:THREE.DoubleSide, transparent:true, opacity:0.4, color:0xffffff, vertexColors:THREE.FaceColors}));
         this.highlighter.geometry.dynamic = true;
+        this.highlighter.visible = false;
         window.three.sceneAdd(this.highlighter, true);
 
         this.model.render();
@@ -65,7 +66,9 @@ ThreeView = Backbone.View.extend({
 
         if (!this.highlighter.visible) return;
 
-        
+        var cell = new Cell(this.highlighter.geometry.vertices[0]);
+        window.three.render();
+
 
     },
 
@@ -90,8 +93,11 @@ ThreeView = Backbone.View.extend({
             this.highlighter.visible = true;
             this.currentHighlightedFace = intersection;
 
+
             var vertices = intersections[0].object.geometry.vertices;
-            this.highlighter.geometry.vertices = [vertices[intersection.a], vertices[intersection.b], vertices[intersection.c]];
+            var position = (new THREE.Vector3()).setFromMatrixPosition(intersections[0].object.matrixWorld);
+            this.highlighter.geometry.vertices = [(new THREE.Vector3()).addVectors(vertices[intersection.a], position),
+                (new THREE.Vector3()).addVectors(vertices[intersection.b], position), (new THREE.Vector3()).addVectors(vertices[intersection.c], position)];
             this.highlighter.geometry.verticesNeedUpdate = true;
         }
 
@@ -129,11 +135,11 @@ ThreeView = Backbone.View.extend({
                     var currentOffset = vertices.length;
 
                     if (Math.abs(j)%2==1){
-                        faces.push(new THREE.Face3(currentOffset-1, currentOffset-2, currentOffset-2-2*baseDim));
+//                        faces.push(new THREE.Face3(currentOffset-1, currentOffset-2, currentOffset-2-2*baseDim));
                         faces.push(new THREE.Face3(currentOffset-2, currentOffset-3-2*baseDim, currentOffset-2-2*baseDim));
                     } else {
                         faces.push(new THREE.Face3(currentOffset-1, currentOffset-3-2*baseDim, currentOffset-2-2*baseDim));
-                        faces.push(new THREE.Face3(currentOffset-1, currentOffset-2, currentOffset-3-2*baseDim));
+//                        faces.push(new THREE.Face3(currentOffset-1, currentOffset-2, currentOffset-3-2*baseDim));
                     }
 
                 }