diff --git a/css/main.css b/css/main.css
index 320a3185cc235754b896f8826d62a4a21872364c..d6487f636c6fc04d4e80bf12fffecc26ff6c9c5a 100644
--- a/css/main.css
+++ b/css/main.css
@@ -413,7 +413,7 @@ label.colorSwatches>span.icons{
     margin: 0 20px 0 -10px;
 }
 
-.editComposite {
+.editComposite, .editMaterial {
     margin-left:20px;
 }
 
diff --git a/js/lattice/CompositeEditorLattice.js b/js/lattice/CompositeEditorLattice.js
index a3f9e4df7124a8b850efed93c29ead67814df968..b89c84c470aa242c7476089fb85ca0677451f76f 100644
--- a/js/lattice/CompositeEditorLattice.js
+++ b/js/lattice/CompositeEditorLattice.js
@@ -75,8 +75,7 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre
         },
 
         deleteComposite: function(){
-            var id = this.get("id");
-            delete materials[id];//todo check if being used first
+            return materials.setMaterial(this.get("id"), null);
         },
 
 
diff --git a/js/main.js b/js/main.js
index dc5028e242fe030b25eb2c04e1b5c3e3039470e5..4c47bc9622b49782e6309c53b8bb29cd458c39a1 100644
--- a/js/main.js
+++ b/js/main.js
@@ -110,6 +110,7 @@ require.config({
         animateMenu: 'menus/AnimationMenuView',
         sendMenu: 'menus/SendMenuView',
         compositeMenu: 'menus/CompositeMenuView',
+        materialEditorMenu: 'menus/MaterialEditorMenuView',
         setupCommMenu: 'menus/SetupCommMenuView',
         discoveryMenu: 'menus/DiscoveryMenuView',
 
@@ -130,6 +131,7 @@ require.config({
         animateMenuTemplate: 'menus/templates/AnimationMenuView.html',
         sendMenuTemplate: 'menus/templates/SendMenuView.html',
         compositeMenuTemplate: 'menus/templates/CompositeMenuView.html',
+        materialEditorMenuTemplate: 'menus/templates/MaterialEditorMenuView.html',
         setupCommMenuTemplate: 'menus/templates/SetupCommMenuView.html',
         discoveryMenuTemplate: 'menus/templates/DiscoveryMenuView.html',
 
diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js
index b55e9d06cafb50b515d37bb0e61d635d5d05b079..5314cc344d6adc0c635b0b25c17830b89e3262dc 100644
--- a/js/materials/DMAMaterials.js
+++ b/js/materials/DMAMaterials.js
@@ -11,13 +11,20 @@ define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], fu
             threeMaterial:new THREE.MeshLambertMaterial({color:"#ff0000", shading:THREE.FlatShading})
         },
         setMaterial: function(id, data){
+            if (id && data === null) return deleteMaterial(id);
             if (!materials[id]) materials[id] = {};
             var oldColor = materials[id].color;
             _.extend(materials[id], data);//todo trigger change on all instances
             if (materials[id].threeMaterial || oldColor != materials[id].color) changeSingleMaterialColorScheme(id);
+            return false;
         }
     };
 
+    function deleteMaterial(id){
+        delete materials[id];//todo check if being used first
+        return true;
+    }
+
     var listener = {};
     _.extend(listener, Backbone.Events);
 
diff --git a/js/menus/CompositeMenuView.js b/js/menus/CompositeMenuView.js
index bafc8fea7454e8b26c18a9206fdbe504048eb797..7f7867d3006c864d2dc511995fee8a35d332eead 100644
--- a/js/menus/CompositeMenuView.js
+++ b/js/menus/CompositeMenuView.js
@@ -32,10 +32,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'ma
             dimensions = lattice.compositeEditor.calculateBoundingBox();
         },
 
-        getPropertyOwner: function($target){
-            if ($target.hasClass("compositeEditor")) return lattice.compositeEditor;
-            return null;
-        },
+
 
         _changeRandomColor: function(e){
             e.preventDefault();
diff --git a/js/menus/MaterialEditorMenuView.js b/js/menus/MaterialEditorMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ad5e68d00b628c67f60da5873fd7b5c80bb9a4c
--- /dev/null
+++ b/js/menus/MaterialEditorMenuView.js
@@ -0,0 +1,29 @@
+/**
+ * Created by aghassaei on 6/24/15.
+ */
+
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'materials', 'text!materialEditorMenuTemplate'],
+    function($, _, MenuParentView, plist, materials, template){
+
+    return MenuParentView.extend({
+
+        events: {
+            "click #cancelMaterial":                             "_exit"
+        },
+
+        _initialize: function(){
+            //bind events
+        },
+
+        _exit: function(){
+            this.model.set("currentNav", "navDesign");
+        },
+
+        _makeTemplateJSON: function(){
+            return _.extend(plist, {name:"name", color:"#ffff00", altColor:"#00ffff"});
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/MaterialMenuView.js b/js/menus/MaterialMenuView.js
index 99a90d744b3f86089b081a5a550655e8b3ead4dd..ffc17fb5ebff1e648b720686fb0df28f3a372e9f 100644
--- a/js/menus/MaterialMenuView.js
+++ b/js/menus/MaterialMenuView.js
@@ -10,7 +10,8 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'ma
         events: {
             "click #navToCompositeMenu":                             "_navToCompositeMenu",
             "click #compositeFromLattice":                           "_latticeToComposite",
-            "click .editComposite":                                  "_editComposite"
+            "click .editComposite":                                  "_editComposite",
+            "click .editMaterial":                                   "_editMaterial"
         },
 
         _initialize: function(){
@@ -31,6 +32,15 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'ma
             lattice.setToCompositeMode(id, materials[id]);
         },
 
+        _editMaterial: function(e){
+            e.stopPropagation();
+            e.preventDefault();
+            var id = $(e.target).data("id");
+            this.model.set("currentTab", "materialEditor", {silent:true});
+            this.model.set("currentNav", "navMaterial");
+        },
+
+
         _latticeToComposite: function(e){
             lattice.setToCompositeMode(null, lattice.getCompositeData());
             lattice.clearCells();
diff --git a/js/menus/templates/MaterialEditorMenuView.html b/js/menus/templates/MaterialEditorMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..a2ca68fb57adb23a9ec81c8516162baafe84979b
--- /dev/null
+++ b/js/menus/templates/MaterialEditorMenuView.html
@@ -0,0 +1,12 @@
+<a href="#" class="btn btn-halfWidth btn-lg btn-default importJSON">Load Material</a>
+<a id="saveMaterial" href="#" class="btn btn-halfWidth btn-lg pull-right btn-default">Save Material</a><br/><br/>
+Name: &nbsp;&nbsp;<input id="materialName" data-property="name" value="<%= name %>" placeholder="Enter Name" class="seventyFiveWidth form-control textInput materialEditor" type="text"><br/><br/>
+Display Color: &nbsp;&nbsp;
+    <input id="materialColor" style="border-color: <%= altColor %> ;" data-property="altColor" value="<%= color %>" placeholder="Enter HEX" class="halfWidth materialEditor form-control hexInput" type="text"><br/><br/>
+<a id="newRandomColor" href="#" class="btn btn-block btn-lg btn-default">New Random Display Color</a><br/>
+Realistic Color: &nbsp;&nbsp;
+    <input id="materialAltColor" style="border-color: <%= color %> ;" data-property="color" value="<%= color %>" placeholder="Enter HEX" class="halfWidth materialEditor form-control hexInput" type="text"><br/><br/>
+Material Properties:<br/><br/>add properties here<br/><br/>
+<a id="finishMaterial" href="#" class="btn btn-block btn-lg btn-success">Save Material</a><br/>
+<a id="cancelMaterial" href="#" class="btn btn-halfWidth btn-lg btn-default">Cancel / Exit</a>
+<a id="deleteMaterial" href="#" class="btn btn-halfWidth pull-right btn-lg btn-default"><span class="fui-trash"></span> Delete</a><br/>
\ No newline at end of file
diff --git a/js/menus/templates/MaterialMenuView.html b/js/menus/templates/MaterialMenuView.html
index 7041cbcf7039b2a9240b72ac43e400a6a5defb17..92ccacb33a1a0f79bd9c89f0a3f16a6a89af4ca6 100644
--- a/js/menus/templates/MaterialMenuView.html
+++ b/js/menus/templates/MaterialMenuView.html
@@ -14,7 +14,7 @@ Material Class: &nbsp;&nbsp;
             <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>
+            <span><%= allMaterials[materialClass][key].name %><a data-id="<%= key %>" class="editMaterial">Settings...</a></span></div>
         </label>
     <% }); %><br/>
     <label class="checkbox" for="realisticColorScheme">
@@ -32,7 +32,7 @@ Composite Materials:<br/>
             <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[key].color %><% }else{ %><%= materials[key].altColor %><% } %>"></div>
-            <span><%= materials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...<a/></span></div>
+            <span><%= materials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...</a></span></div>
         </label>
     <% }); %><br/>
     <% if (_.filter(_.keys(materials), function(name){return name.substr(0,5) == "super"; }).length > 0) { %>
diff --git a/js/models/PList.js b/js/models/PList.js
index 6ac5e700d3f687c88d3378e4dfc562ade18ee45d..8239164f2c0ad0d1daf367687474303a0f8ae436 100644
--- a/js/models/PList.js
+++ b/js/models/PList.js
@@ -30,6 +30,9 @@ define(['three'], function(THREE){
             navComm:{
                 setupComm: "Setup",
                 send: "Send"
+            },
+            navMaterial:{
+                materialEditor: "Material Editor"
             }
         },