diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js
index 2575f0f68cb5471e26a2cddc53ba908be8c7af86..d02979637e15b803e631e47ed9e622b5dac44954 100644
--- a/js/cells/DMACell.js
+++ b/js/cells/DMACell.js
@@ -139,6 +139,20 @@ DMACell.prototype.getEuler = function(){
     return this.object3D.rotation.clone();
 };
 
+DMACell.prototype.axisScale = function(axis){
+    switch (axis){
+        case "x":
+            return this.xScale();
+        case "y":
+            return this.yScale();
+        case "z":
+            return this.zScale();
+        default:
+            console.warn(axis + " axis not recognized");
+            break;
+    }
+};
+
 DMACell.prototype.xScale = function(){
     return globals.lattice.xScale(0);
 };
diff --git a/js/cells/GIKCell.js b/js/cells/GIKCell.js
index ac5d263ec6c06ae49da1563a0babd0c24d5c8c1d..9910f7fec5926a5d5b4d0560253978fdecb8fa4f 100644
--- a/js/cells/GIKCell.js
+++ b/js/cells/GIKCell.js
@@ -15,6 +15,7 @@
     GIKCell.prototype.setSuperCell = function(superCell, index){
         this.superCell = superCell;
         this.superCellIndex = index;
+        console.log(this.indices);
         CubeCell.call(this, this.indices);
         if (this.superCellIndex == this.superCell.getLength()) this.object3D.rotateZ(Math.PI);
         return this.object3D;
@@ -25,7 +26,10 @@
     };
 
     GIKCell.prototype._translateCell = function(object3D){
-        if (this.superCellIndex) object3D.position.set(-this.superCellIndex*this.xScale(),0, 0);
+        if (this.superCellIndex != null) {
+            var offset = this.superCellIndex-this.superCell.getLength();
+            object3D.position.set(offset*this.xScale(),0, 0);
+        }
         return object3D;
     };
 
@@ -48,6 +52,18 @@
         return parts;
     };
 
+    GIKCell.prototype.calcHighlighterPosition = function(face){
+
+//        var params = CubeCell.prototype.calcHighlighterPosition.call();
+        var direction = face.normal.clone().applyEuler(this.object3D.rotation).applyEuler(this.superCell.object3D.rotation);
+        var position = globals.lattice.getPositionForIndex(this.indices);
+        var self = this;
+        _.each(_.keys(position), function(key){
+            position[key] += direction[key]*self.axisScale(key)/2;
+        });
+        return {index: _.clone(this.indices), direction:direction, position:position};
+    };
+
     self.GIKCell = GIKCell;
 
 })();
\ No newline at end of file
diff --git a/js/models/ThreeModel.js b/js/models/ThreeModel.js
index 4c96beec559ac1ae6159243cd7ca013d621ef69c..a3a13c6397febfc482358eb034f3fe2ea4efe483 100644
--- a/js/models/ThreeModel.js
+++ b/js/models/ThreeModel.js
@@ -21,9 +21,9 @@ function ThreeModel(){
 
     function initialize(){
 
-        camera.position.x = 125;
-        camera.position.y = 100;
-        camera.position.z = 165;
+        camera.position.x = 15;
+        camera.position.y = 12;
+        camera.position.z = 12;
         camera.up.set(0,0,1);//set z axis as "up"
 
         scene.fog = new THREE.FogExp2(0xcccccc, 0.000);
diff --git a/js/threeViews/Highlighter.js b/js/threeViews/Highlighter.js
index 3948934f76b5aad729c8343d52ad785e9605cc5c..bb0321158fe519c629d1e76dd5c86a4f79b8c582 100644
--- a/js/threeViews/Highlighter.js
+++ b/js/threeViews/Highlighter.js
@@ -210,14 +210,15 @@ GIKHighlighter = Highlighter.extend({
     },
 
     _setPosition: function(position, direction){
-        this.mesh.position.set(position.x+direction.x, position.y+direction.y, position.z+globals.lattice.zScale()/2*direction.z);
+        this.mesh.position.set(position.x+direction.x/2, position.y+direction.y/2, position.z+globals.lattice.zScale()*direction.z/2);
     },
 
     _setRotation: function(direction, index){
         var superCellIndex = globals.appState.get("superCellIndex");
-        if ((index.z%2 == 0 && Math.abs(direction.z) > 0.9) || (index.z%2 != 0 && Math.abs(direction.z) < 0.1)) this.mesh.rotation.set(0, 0, Math.PI/2);
+        if ((index.z%2 == 0 && Math.abs(direction.z) > 0.9) || (index.z%2 != 0 && Math.abs(direction.z) < 0.1))
+            this.mesh.rotation.set(0, 0, Math.PI/2);
         else this.mesh.rotation.set(0,0,0);
-        this.mesh.translateX(superCellIndex);
+        this.mesh.translateX(superCellIndex - this.mesh.scale.x/2 + 0.5);
     },
 
     updateGikLength: function(){