diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js
index e8bef73ae1995a9cafc4106e919ac6e8478ea5cb..e24a4b400b27cfc55d60c7198f38e7e46688939e 100644
--- a/js/cells/DMACell.js
+++ b/js/cells/DMACell.js
@@ -3,8 +3,8 @@
  */
 
 
-define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
-    function(_, THREE, three, lattice, appState, globals){
+define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals', 'materials'],
+    function(_, THREE, three, lattice, appState, globals, materials){
 
     var wireframeMaterial = new THREE.MeshBasicMaterial({color:0x000000, wireframe:true});
 
@@ -155,7 +155,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
     DMACell.prototype.setDeleteMode = function(state){
 
         var material;
-        if (state) material = globals.materials.deleteMaterial;
+        if (state) material = materials.deleteMaterial;
         else  material = this.getMaterial(true);
         if (!material) return;//cell may be deleted by now
         if (this.object3D.children[0].material == material) return;
@@ -222,18 +222,20 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
     };
 
     DMACell.prototype.getMaterial = function(returnTHREEObject){
-        if (!this.material) return null;
-        var materialClass = appState.get("materialClass");
-        if (!globals.materials[materialClass]) {
-            console.warn("no material class found of type " + materialClass);
+        if (!this.material) {
+            console.warn("no material type set for cell");
             return null;
         }
-        var material = globals.materials[materialClass].materials[this.material];
-        if (!material){
-            console.warn("no material "+ this.material + " found for class "+ materialClass);
+        if (!returnTHREEObject) return this.material;
+        if (!materials[this.material]) {
+            console.warn("no material object found of type " + this.materials);
             return null;
         }
-        return material;
+        if (!materials[this.material].threeMaterial){
+            console.warn("no three material object found for type "+ this.material);
+            return null;
+        }
+        return materials[this.material].threeMaterial;
     };
 
     DMACell.prototype.setOpacity = function(opacity){
@@ -372,7 +374,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'],
         var data = {
             material: this.material
         };
-        if (globals.materials.compositeMaterials[this.material]) return data;//material definition in material composites
+        if (materials[this.material].cells) return data;//material definition in material composites
         if (this.cells) data.cells = this.cells;
         return data;
     };
diff --git a/js/cells/supercells/CompositeCell.js b/js/cells/supercells/CompositeCell.js
index 743ac1837681a2ed82b3e5b4fa859c7948cd0fae..867326d5844280e829c94f8ebedcde746d15616b 100644
--- a/js/cells/supercells/CompositeCell.js
+++ b/js/cells/supercells/CompositeCell.js
@@ -3,8 +3,8 @@
  */
 
 
-define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', 'globals'],
-    function(_, THREE, three, lattice, appState, DMASuperCell, globals){
+define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', 'globals', 'materials'],
+    function(_, THREE, three, lattice, appState, DMASuperCell, globals, materials){
 
     CompositeCell = function(json, superCell){
         DMASuperCell.call(this, json, superCell);
@@ -12,7 +12,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell',
     CompositeCell.prototype = Object.create(DMASuperCell.prototype);
 
     CompositeCell.prototype._getGeometry = function(){
-        var dimensions = globals.materials.compositeMaterials[this.material].dimensions;
+        var dimensions = materials[this.material].dimensions;
         var geo = new THREE.BoxGeometry(dimensions.x*lattice.xScale(), dimensions.y*lattice.yScale(), dimensions.z*lattice.zScale());
         geo.applyMatrix(new THREE.Matrix4().makeTranslation(dimensions.x/2-0.5, dimensions.y/2-0.5, dimensions.z/2-0.5));
         return geo;
@@ -26,22 +26,5 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell',
         return wireframe;
     };
 
-    CompositeCell.prototype.getMaterial = function(returnTHREEObject){
-        if (!this.material) return null;
-        var material = globals.materials.compositeMaterials[this.material];
-        if (!material){
-            console.warn("no material "+ this.material + " found");
-            return null;
-        }
-        if (returnTHREEObject){
-            if (material.material) return material.material;
-            else {
-                material.material = new THREE.MeshLambertMaterial({color:material.color, shading:THREE.FlatShading});
-                return material.material;
-            }
-        }
-        return material;
-    };
-
     return CompositeCell;
 });
\ No newline at end of file
diff --git a/js/lattice/CompositeEditorLattice.js b/js/lattice/CompositeEditorLattice.js
index 38cb246f50a5a0b21e9b12c8ff021fbabbaaa56e..584de77c6c4f4bc7a36d01cd43998b0591b72de3 100644
--- a/js/lattice/CompositeEditorLattice.js
+++ b/js/lattice/CompositeEditorLattice.js
@@ -3,8 +3,8 @@
  */
 
 
-define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'threeModel', 'latticeBase'],
-    function(_, Backbone, appState, globals, plist, THREE, three, LatticeBase){
+define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'threeModel', 'latticeBase', 'materials'],
+    function(_, Backbone, appState, globals, plist, THREE, three, LatticeBase, materials){
 
     function makeRandomColor(){
         return '#' + Math.floor(Math.random()*16777215).toString(16);
@@ -74,14 +74,14 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
                 cellsMax: this.get("cellsMax").clone(),
                 dimensions: dimensions
             };
-            if (!globals.materials.compositeMaterials[id]) globals.materials.compositeMaterials[id] = {};
-            _.extend(globals.materials.compositeMaterials[id], data);//todo trigger change on all instances
-            if (globals.materials.compositeMaterials[id].material) globals.materials.compositeMaterials[id].material.color = new THREE.Color(this.get("color"));
+            if (!materials[id]) materials[id] = {};
+            _.extend(materials[id], data);//todo trigger change on all instances
+            if (materials[id].threeMaterial) materials[id].threeMaterial.color = new THREE.Color(this.get("color"));
         },
 
         deleteComposite: function(){
             var id = this.get("id");
-            delete globals.materials.compositeMaterials[id];//todo trigger change on all instances
+            delete materials[id];//todo check if being used first
         },
 
 
diff --git a/js/lattice/LatticeBase.js b/js/lattice/LatticeBase.js
index 0bb1395a4e34017d87b4e195e5f19853061ee358..8f695957ae40e43b25d31274d121eca58189626a 100644
--- a/js/lattice/LatticeBase.js
+++ b/js/lattice/LatticeBase.js
@@ -50,7 +50,6 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
             }
 
             if (this._setDefaultCellMode) this._setDefaultCellMode();
-            appState._loadMaterialClass();
 
             var cellsMin = this.get("cellsMin");
             var cellsMax = this.get("cellsMax");
diff --git a/js/main.js b/js/main.js
index 412b73faf3386ba8b1565a2cfc19143259cdc80f..96ea032bee3627e6e6f691e7b8efb94bec0e0ef2 100644
--- a/js/main.js
+++ b/js/main.js
@@ -85,8 +85,6 @@ require.config({
 
         //materials
         materials: 'materials/DMAMaterials',
-        electronicMaterials: 'materials/ElectronicMaterials',
-        mechanicalMaterials: 'materials/MechanicalMaterials',
 
         //UI
         navbar: 'menus/Navbar',
diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js
index b65c5baed350ab958e40dcdc1699e820500525cd..0f662e1b48813baa34dc1058b2cb4c165962e7fc 100644
--- a/js/materials/DMAMaterials.js
+++ b/js/materials/DMAMaterials.js
@@ -2,8 +2,8 @@
  * Created by aghassaei on 6/4/15.
  */
 
-
-define(['underscore', 'three', 'appState', 'globals'], function(_, THREE, appState, globals){
+//everything is a top level material with a threeMaterial object
+define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], function(_, THREE, appState, lattice, plist, three){
 
     var materials = {
         deleteMaterial: {
@@ -12,66 +12,63 @@ define(['underscore', 'three', 'appState', 'globals'], function(_, THREE, appSta
         }
     };
 
-    _.extend(materials, Backbone.Events);
+    var listener = {};
+    _.extend(listener, Backbone.Events);
 
-    materials.listenTo(appState, "change:realisticColorScheme", changeColorScheme);
-    materials.listenTo(appState, "change:materialClass", loadMaterialClass);
+    listener.listenTo(appState, "change:realisticColorScheme", changeColorScheme);
+    listener.listenTo(appState, "change:materialClass", loadMaterialClass);
+    listener.listenTo(lattice, "change:connectionType cellType", loadMaterialClass);
+    listener.listenTo(appState, "change:materialType", setMaterialDefaults);
 
-    globals.materials = materials;
+    loadMaterialClass();
 
     function loadMaterialClass(){
         var materialClass = appState.get("materialClass");
-        var materialType = appState.get("materialType");
-        if (!plist.allMaterials[materialClass].materialType) this.set("materialType", _.keys(plist.allMaterials[materialClass])[0], {silent:true});//set to default silently
-        if (globals.materials[materialClass]) return;//already loaded
-        require([materialClass + "Materials"], function(MaterialClass){
-            globals.materials[materialClass] = MaterialClass;
+        var newDefaultType = _.keys(plist.allMaterials[materialClass])[0];
+        if (!materials[newDefaultType]) _.extend(materials, parseClassFromDefinitions(plist.allMaterials[materialClass]));
+        if (!materials[newDefaultType]) console.warn("material type " + newDefaultType + "  not in definition for " + materialClass);
+        appState.set("materialType", newDefaultType, {silent:true});//set to default silently
+    }
+
+    function parseClassFromDefinitions(definitions){
+        var newMaterials = {};
+        var state = appState.get("realisticColorScheme");
+        _.each(_.keys(definitions), function(key){
+            newMaterials[key] = definitions[key];
+            var color = getMaterialColorForState(state, definitions[key], key);
+            newMaterials[key].threeMaterial = makeMaterialObject(color);
         });
+        return newMaterials;
     }
 
     function changeColorScheme(){
         var state = appState.get("realisticColorScheme");
         _.each(_.keys(materials), function(name){
             var materialInfo = materials[name];
-
-            var color = materialInfo.color;
-            if (!color) console.warn("no color for material type " + name);
-            if (!state && materialInfo.altColor) color = materialInfo.altColor;
-
+            var color = getMaterialColorForState(state, materialInfo, name);
             if (materialInfo.threeMaterial) materialInfo.threeMaterial.color = new THREE.Color(color);
-            else materialInfo.threeMaterial = new THREE.MeshLambertMaterial({color:color, shading:THREE.FlatShading});
+            else materialInfo.threeMaterial = makeMaterialObject(color);
         });
+        three.render();
     }
 
+    function getMaterialColorForState(state, definition, key){
+        var color = definition.color;
+        if (!color) console.warn("no color for material type " + key);
+        if (!state && definition.altColor) color = definition.altColor;
+        return color;
+    }
 
-    function DMAMaterials(materialList){
-        this.materials = {};
-        this.materialList = materialList;
-        this.changeMaterials();
+    function makeMaterialObject(color){
+        return new THREE.MeshLambertMaterial({color:color, shading:THREE.FlatShading});
     }
 
-    DMAMaterials.prototype.changeMaterials = function(){
-        var self = this;
-        var state = appState.get("realisticColorScheme");
-        _.each(_.keys(self.materialList), function(materialName){
-            var materialData = self.materialList[materialName];
-            if (state) {
-                if (self.materials[materialName]) self.materials[materialName].color = new THREE.Color(materialData.color);
-                else self.materials[materialName] = new THREE.MeshLambertMaterial({color:materialData.color, shading:THREE.FlatShading});
-                if (materialData.opacity){
-                    self.materials[materialName].transparent = true;
-                    self.materials[materialName].opacity = materialData.opacity;
-                } else {
-                    self.materials[materialName].transparent = false;
-                }
-            }
-            else {
-                if (self.materials[materialName]) self.materials[materialName].color = new THREE.Color(materialData.altColor);
-                else self.materials[materialName] = new THREE.MeshLambertMaterial({color:materialData.altColor, shading:THREE.FlatShading});
-                self.materials[materialName].transparent = false;
-            }
-        });
-    };
+    function setMaterialDefaults(){
+        var materialType = appState.get("materialType");
+        if (!materials[materialType].dimensions) return;
+        appState.set("superCellRange", materials[materialType].dimensions.clone());
+        appState.set("superCellIndex", new THREE.Vector3(0,0,0));
+    }
 
     return materials;
 });
\ No newline at end of file
diff --git a/js/materials/ElectronicMaterials.js b/js/materials/ElectronicMaterials.js
deleted file mode 100644
index f867833105d46c95627e495121d27ff0be66e73d..0000000000000000000000000000000000000000
--- a/js/materials/ElectronicMaterials.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Created by aghassaei on 6/3/15.
- */
-
-
-define(['underscore', 'three', 'appState', 'plist', 'materials'], function(_, THREE, appState, plist, DMAMaterials){
-    
-    function ElectronicMaterials(){
-       DMAMaterials.call(this, plist.allMaterials.electronic);
-    }
-    ElectronicMaterials.prototype = Object.create(DMAMaterials.prototype);
-
-    return new ElectronicMaterials();
-});
\ No newline at end of file
diff --git a/js/materials/MechanicalMaterials.js b/js/materials/MechanicalMaterials.js
deleted file mode 100644
index 5cf3560dc8d4377c0a0e303a83f5dc53f98ee36a..0000000000000000000000000000000000000000
--- a/js/materials/MechanicalMaterials.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Created by aghassaei on 6/4/15.
- */
-
-
-define(['underscore', 'three', 'appState', 'plist', 'materials'], function(_, THREE, appState, plist, DMAMaterials){
-
-    function MechanicalMaterials(){
-       DMAMaterials.call(this, plist.allMaterials.mechanical);
-    }
-    MechanicalMaterials.prototype = Object.create(DMAMaterials.prototype);
-
-    return new MechanicalMaterials();
-});
\ No newline at end of file
diff --git a/js/menus/CompositeMenuView.js b/js/menus/CompositeMenuView.js
index c753fc3c2f364d6ce669607335069057d63eecaa..19462ee339c4f45322ce7175d66eacb23bc188ab 100644
--- a/js/menus/CompositeMenuView.js
+++ b/js/menus/CompositeMenuView.js
@@ -2,7 +2,7 @@
  * Created by aghassaei on 6/10/15.
  */
 
-define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], function($, _, MenuParentView, plist, lattice, globals){
+define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'materials'], function($, _, MenuParentView, plist, lattice, globals, materials){
 
     var dimensions;
 
@@ -80,7 +80,8 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
         _makeTemplateJSON: function(){
             return _.extend(this.model.toJSON(), plist, globals, lattice.compositeEditor.toJSON(),
                 {
-                    dimensions: dimensions
+                    dimensions: dimensions,
+                    materials: materials
                 });
         },
 
@@ -96,19 +97,19 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
             Available Materials:<br/>\
             <% _.each(_.keys(allMaterials[materialClass]), function(key){ %>\
             <label class="radio colorSwatches">\
-                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
+                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
                 <div class="materialColorSwatch">\
                 <div style="background-color:<% if(realisticColorScheme){ %><%= allMaterials[materialClass][key].color %><% }else{ %><%= allMaterials[materialClass][key].altColor %><% } %>"></div>\
                 <span><%= allMaterials[materialClass][key].name %></span></div>\
             </label>\
             <% }); %>\
-            <% _.each(_.keys(materials.compositeMaterials), function(key){ \
-                if (key == id) return; %>\
+            <% _.each(_.keys(materials), function(key){ \
+                if (key == id || key.substr(0,5) != "super") return; %>\
             <label class="radio colorSwatches">\
-                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
+                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
                 <div class="materialColorSwatch">\
-                <div style="background-color:<% if(realisticColorScheme){ %><%= materials.compositeMaterials[key].color %><% }else{ %><%= materials.compositeMaterials[key].altColor %><% } %>"></div>\
-                <span><%= materials.compositeMaterials[key].name %></span></div>\
+                <div style="background-color:<% if(realisticColorScheme){ %><%= materials[key].color %><% }else{ %><%= materials[key].altColor %><% } %>"></div>\
+                <span><%= materials[key].name %></span></div>\
             </label>\
             <% }); %><br/>\
             <a id="finishComposite" href="#" class="btn btn-block btn-lg btn-success">Save Composite</a><br/>\
diff --git a/js/menus/MaterialMenuView.js b/js/menus/MaterialMenuView.js
index 092fb0ac10fe501470383fde690418ea021b2cef..44a7b16860117307401aace1930ada364f2baf26 100644
--- a/js/menus/MaterialMenuView.js
+++ b/js/menus/MaterialMenuView.js
@@ -2,7 +2,7 @@
  * Created by aghassaei on 2/25/15.
  */
 
-define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], function($, _, MenuParentView, plist, lattice, globals){
+define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'materials'], function($, _, MenuParentView, plist, lattice, globals, materials){
 
     return MenuParentView.extend({
 
@@ -27,7 +27,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
             e.stopPropagation();
             e.preventDefault();
             var id = $(e.target).data("id");
-            lattice.setToCompositeMode(id, globals.materials.compositeMaterials[id]);
+            lattice.setToCompositeMode(id, materials[id]);
         },
 
         _latticeToComposite: function(e){
@@ -37,7 +37,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
         },
 
         _makeTemplateJSON: function(){
-            return _.extend(lattice.toJSON(), this.model.toJSON(), plist, globals);
+            return _.extend(lattice.toJSON(), this.model.toJSON(), plist, globals, {materials:materials});
         },
 
         template: _.template('\
@@ -46,7 +46,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
                     <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allMaterialClasses[materialClass] %><span class="caret"></span></button>\
                     <ul role="menu" class="dropdown-menu">\
                         <% _.each(_.keys(allMaterialClasses), function(key){ %>\
-                            <li><a class="lattice dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[key] %></a></li>\
+                            <li><a class="appState dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[key] %></a></li>\
                         <% }); %>\
                     </ul>\
                 </div><br/><br/>\
@@ -54,7 +54,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
             Materials:<br/>\
             <% _.each(_.keys(allMaterials[materialClass]), function(key){ %>\
             <label class="radio colorSwatches">\
-                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
+                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
                 <div class="materialColorSwatch">\
                 <div style="background-color:<% if(realisticColorScheme){ %><%= allMaterials[materialClass][key].color %><% }else{ %><%= allMaterials[materialClass][key].altColor %><% } %>"></div>\
                 <span><%= allMaterials[materialClass][key].name %></span></div>\
@@ -71,15 +71,16 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu
             <% if ((cellType == "octa" && connectionType != "vertex") || cellType == "tetra"){ %>\
             not available for this lattice type\
             <%  } else { %> \
-            <% _.each(_.keys(materials.compositeMaterials), function(key){ %>\
+            <% _.each(_.keys(materials), function(key){ \
+            if (key.substr(0,5) != "super") return; %>\
             <label class="radio colorSwatches">\
-                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
+                <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\
                 <div class="materialColorSwatch">\
-                <div style="background-color:<% if(realisticColorScheme){ %><%= materials.compositeMaterials[key].color %><% }else{ %><%= materials.compositeMaterials[key].altColor %><% } %>"></div>\
-                <span><%= materials.compositeMaterials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...<a/></span></div>\
+                <div style="background-color:<% if(realisticColorScheme){ %><%= materials[key].color %><% }else{ %><%= materials[key].altColor %><% } %>"></div>\
+                <span><%= materials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...<a/></span></div>\
             </label>\
             <% }); %><br/>\
-            <% if (_.keys(materials.compositeMaterials).length > 0) { %>\
+            <% if (_.keys(materials).length > 0) { %>\
             Offset (xyz): &nbsp;&nbsp;<input data-property="superCellIndex" data-key="x" value="<%= superCellIndex.x %>" placeholder="X" class="form-control intInput appState" type="text">\
                 &nbsp;<input data-property="superCellIndex" data-key="y" value="<%= superCellIndex.y %>" placeholder="Y" class="form-control intInput appState" type="text">\
                 &nbsp;<input data-property="superCellIndex" data-key="z" value="<%= superCellIndex.z %>" placeholder="Z" class="form-control intInput appState" type="text"><br/><br/>\
diff --git a/js/models/AppState.js b/js/models/AppState.js
index a1f5d8d3bbd3176c093bb65089cefc838700aaa9..9aaa851ba4ab0ba846faf46b0a54dcaeff086e0a 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -57,7 +57,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu
 
             this.listenTo(this, "change:currentTab", this._tabChanged);
             this.listenTo(this, "change:currentNav", this._navChanged);
-            this.listenTo(this, "change:realisticColorScheme", this._updateColorScheme);
             this.listenTo(this, "change:materialType", this._materialTypeChanged);
 
             this.downKeys = {};//track keypresses to prevent repeat keystrokeson hold
@@ -108,15 +107,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu
             }
         },
 
-        _updateColorScheme: function(){
-            require(['globals'], function(globals){
-                _.each(_.keys(globals.materials), function(materialClass){
-                    if (globals.materials[materialClass].changeMaterials) globals.materials[materialClass].changeMaterials();
-                });
-                three.render();
-            });
-        },
-
         _materialTypeChanged: function(){
             var materialType = this.get("materialType");
             //verify that correct class is in sync
@@ -130,8 +120,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu
             }
 
             //composite material
-            this.set("superCellRange", globals.materials.compositeMaterials[materialType].dimensions.clone());
-            this.set("superCellIndex", new THREE.Vector3(0,0,0));
             require(['superCellHighlighter'], function(SuperCellHighlighter){
                 globals.highlighter = new SuperCellHighlighter();
             });
diff --git a/js/models/Globals.js b/js/models/Globals.js
index 8d73d057cbcf2f65630709252906d8226e7edc5f..4d0060a466dd9fa089c72fe035a7bad2f692c476 100644
--- a/js/models/Globals.js
+++ b/js/models/Globals.js
@@ -9,6 +9,5 @@ define([], function(){
     return {
         baseplane: null,
         highlighter: null,
-        materials: null
     };
 });
\ No newline at end of file