diff --git a/js/menus/OptimizationMenuView.js b/js/menus/OptimizationMenuView.js
index 6e566afae4f1926b8672ef312cc26bb73ec4f28f..a94050397048f8637abca458be246e4da7d70fab 100644
--- a/js/menus/OptimizationMenuView.js
+++ b/js/menus/OptimizationMenuView.js
@@ -26,7 +26,7 @@ OptimizationMenuView = Backbone.View.extend({
         <br/><br/>\
         optimization parameters representation may depend on application: <a href="http://en.wikipedia.org/wiki/Evolved_antenna">antenna</a>, <a href="http://2.bp.blogspot.com/-4o29mAWZjag/UURyXoraMKI/AAAAAAAAHyM/HnevUeJ68Sw/s400/yyy.bmp">nike</a>, airbus, assembler/declarative design\
         <br/><br/>\
-        active components/structures: <a href="https://www.youtube.com/watch?v=z9ptOeByLA4">voxcad</a>, <a href="http://arxiv.org/pdf/cs/0004003v2.pdf">conway</a>\
+        active components/structures: <a href="https://www.youtube.com/watch?v=z9ptOeByLA4">voxcad</a>, <a href="http://arxiv.org/pdf/cs/0004003v2.pdf">conway</a> (<a href="http://www.instructables.com/id/OTCA-Metapixel-Conways-Game-of-Life/">instructable</a>)\
         <br/><br/>\
         ')
 
diff --git a/js/models/ThreeModel.js b/js/models/ThreeModel.js
index 5a239c71fac43a84ea09ae8610da415dad23fd06..ee30034f6794856e7858d956a30ed1b1eb0aaf98 100644
--- a/js/models/ThreeModel.js
+++ b/js/models/ThreeModel.js
@@ -11,7 +11,6 @@ function ThreeModel(){
 
     //store all meshes to highlight
     var cells = [];
-    var highlightableCells = [];//may be able to get rid of this eventually
     var invCells = [];
     var parts = [];
     var basePlane = [];
@@ -55,8 +54,7 @@ function ThreeModel(){
         scene.add(object);
 
         if (type == "cell"){
-            cells.push(object);
-            highlightableCells.push(object.children[0]);
+            cells.push(object.children[0]);
         } else if (type == "inverseCell"){
             invCells.push(object);
         } else if (type == "part"){
@@ -74,8 +72,7 @@ function ThreeModel(){
         }
 
         if (type == "cell"){
-            cells.splice(cells.indexOf(objectToRemove), 1);
-            highlightableCells.splice(highlightableCells.indexOf(objectToRemove.children[0]), 1);
+            cells.splice(cells.indexOf(objectToRemove.children[0]), 1);
         } else if (type == "inverseCell"){
             invCells.splice(invCells.indexOf(objectToRemove), 1);
         } else if (type == "part"){
@@ -96,7 +93,7 @@ function ThreeModel(){
         _.each(invCells, function(cell){
             sceneRemove(cell, "inverseCell");
         });
-        cells.splice(0, cells.length);;
+        cells.splice(0, cells.length);
         parts.splice(0, parts.length);
     }
 
@@ -111,7 +108,7 @@ function ThreeModel(){
 //        scene: scene,
         domElement: renderer.domElement,
         camera: camera,
-        cells: highlightableCells,
+        cells: cells,
         invCells: invCells,
         parts: parts,
         basePlane: basePlane,