diff --git a/js/main.js b/js/main.js
index bb162098b00b464db3aa4de1b8e1fa74a9f51297..7dedc7c1ddd9c16ccc17dd3f62c07730d4791c53 100644
--- a/js/main.js
+++ b/js/main.js
@@ -108,7 +108,6 @@ require.config({
         importMenu: 'menus/ImportMenuView',
         partMenu: 'menus/PartMenuView',
         scriptMenu: 'menus/ScriptMenuView',
-        physicsMenu: 'menus/PhysicsMenuView',
         materialMenu: 'menus/MaterialMenuView',
         optimizeMenu: 'menus/OptimizationMenuView',
         assemblerMenu: 'menus/AssemblerMenuView',
@@ -119,6 +118,12 @@ require.config({
         materialEditorMenu: 'menus/MaterialEditorMenuView',
         setupCommMenu: 'menus/SetupCommMenuView',
         discoveryMenu: 'menus/DiscoveryMenuView',
+        eSetupMenu: 'menus/ESetupMenuView',
+        eStaticMenu: 'menus/EStaticMenuView',
+        eDynamicMenu: 'menus/EDynamicMenuView',
+        mSetupMenu: 'menus/MSetupMenuView',
+        mStaticMenu: 'menus/MStaticMenuView',
+        mDynamicMenu: 'menus/MDynamicMenuView',
 
         //templates
         navViewMenuTemplate: 'menus/templates/NavViewMenu.html',
@@ -129,7 +134,6 @@ require.config({
         importMenuTemplate: 'menus/templates/ImportMenuView.html',
         partMenuTemplate: 'menus/templates/PartMenuView.html',
         scriptMenuTemplate: 'menus/templates/ScriptMenuView.html',
-        physicsMenuTemplate: 'menus/templates/PhysicsMenuView.html',
         materialMenuTemplate: 'menus/templates/MaterialMenuView.html',
         optimizeMenuTemplate: 'menus/templates/OptimizationMenuView.html',
         assemblerMenuTemplate: 'menus/templates/AssemblerMenuView.html',
@@ -140,6 +144,12 @@ require.config({
         materialEditorMenuTemplate: 'menus/templates/MaterialEditorMenuView.html',
         setupCommMenuTemplate: 'menus/templates/SetupCommMenuView.html',
         discoveryMenuTemplate: 'menus/templates/DiscoveryMenuView.html',
+        eSetupMenuTemplate: 'menus/templates/ESetupMenuView.html',
+        eStaticMenuTemplate: 'menus/templates/EStaticMenuView.html',
+        eDynamicMenuTemplate: 'menus/templates/EDynamicMenuView.html',
+        mSetupMenuTemplate: 'menus/templates/MSetupMenuView.html',
+        mStaticMenuTemplate: 'menus/templates/MStaticMenuView.html',
+        mDynamicMenuTemplate: 'menus/templates/MDynamicMenuView.html',
 
         //cam
         cam: 'cam/cam',
diff --git a/js/menus/EDynamicMenuView.js b/js/menus/EDynamicMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..21cabc1a84033cc4248c2eda8dc456a6ea9c1205
--- /dev/null
+++ b/js/menus/EDynamicMenuView.js
@@ -0,0 +1,22 @@
+/**
+ * Created by aghassaei on 6/30/15.
+ */
+
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!eDynamicMenuTemplate'], function($, _, MenuParentView, plist, template){
+
+    return MenuParentView.extend({
+
+        events: {
+        },
+
+        _initialize: function(){
+        },
+
+        _makeTemplateJSON: function(){
+            return null;
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/PhysicsMenuView.js b/js/menus/ESetupMenuView.js
similarity index 68%
rename from js/menus/PhysicsMenuView.js
rename to js/menus/ESetupMenuView.js
index 13bb5ac6337509acf78071d921422d0e2b4d2f12..5967c3072b2c834b61dbf3f8cf4cac50463dd45d 100644
--- a/js/menus/PhysicsMenuView.js
+++ b/js/menus/ESetupMenuView.js
@@ -2,7 +2,7 @@
  * Created by aghassaei on 2/25/15.
  */
 
-define(['jquery', 'underscore', 'menuParent', 'plist', 'text!physicsMenuTemplate'], function($, _, MenuParentView, plist, template){
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!eSetupMenuTemplate'], function($, _, MenuParentView, plist, template){
 
     return MenuParentView.extend({
 
diff --git a/js/menus/EStaticMenuView.js b/js/menus/EStaticMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..6257fdef21bab8eb639066c39d30ccc85b5250f4
--- /dev/null
+++ b/js/menus/EStaticMenuView.js
@@ -0,0 +1,22 @@
+/**
+ * Created by aghassaei on 6/30/15.
+ */
+
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!eStaticMenuTemplate'], function($, _, MenuParentView, plist, template){
+
+    return MenuParentView.extend({
+
+        events: {
+        },
+
+        _initialize: function(){
+        },
+
+        _makeTemplateJSON: function(){
+            return null;
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/ImportMenuView.js b/js/menus/ImportMenuView.js
index 08143c9d17e479b9c9904ad0c229f3494b455e47..761a4f2dbbde2b5ec5e2d78f23564ecc9b60e3a9 100644
--- a/js/menus/ImportMenuView.js
+++ b/js/menus/ImportMenuView.js
@@ -3,7 +3,7 @@
  */
 
 define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'text!importMenuTemplate', 'fillGeometry', 'stlLoader'],
-    function($, _, MenuParentView, plist, lattice, template, FillGeometry, THREE){
+    function($, _, MenuParentView, plist, lattice, template, fillGeometry, THREE){
 
     return MenuParentView.extend({
 
@@ -20,12 +20,11 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'text!importMe
 
         _initialize: function(){
 
-            this.fillGeometry = new FillGeometry();
-            this.listenTo(this.fillGeometry, "change", this.render);
+            this.listenTo(fillGeometry, "change", this.render);
         },
 
         getPropertyOwner: function($target){
-            if ($target.hasClass("fillGeometry")) return this.fillGeometry;
+            if ($target.hasClass("fillGeometry")) return fillGeometry;
             return null;
         },
 
@@ -62,31 +61,30 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'text!importMe
         },
 
         _loadMeshFromURL: function(url, filename){
-            var self = this;
             var loader = new THREE.STLLoader();
             loader.load(url, function(geometry){
-                self.fillGeometry.buildNewMesh(geometry);
-                self.fillGeometry.set("filename", filename);
+                fillGeometry.buildNewMesh(geometry);
+                fillGeometry.set("filename", filename);
             });
         },
 
         _subtractGeo: function(e){
             e.preventDefault();
-            this.fillGeometry.subtractGeo();
+            fillGeometry.subtractGeo();
         },
 
         _fillGeo: function(e){
             e.preventDefault();
-            this.fillGeometry.fillGeo();
+            fillGeometry.fillGeo();
         },
 
         _removeMesh: function(e){
             e.preventDefault();
-            this.fillGeometry.removeMesh();
+            fillGeometry.removeMesh();
         },
 
         _makeTemplateJSON: function(){
-            return _.extend(this.model.toJSON(), this.fillGeometry.toJSON());
+            return _.extend(this.model.toJSON(), fillGeometry.toJSON());
         },
 
         template: _.template(template)
diff --git a/js/menus/MDynamicMenuView.js b/js/menus/MDynamicMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..f0295769c13dbddf54ad10b9d61c1b69e274331f
--- /dev/null
+++ b/js/menus/MDynamicMenuView.js
@@ -0,0 +1,21 @@
+/**
+ * Created by aghassaei on 6/30/15.
+ */
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!mDynamicMenuTemplate'], function($, _, MenuParentView, plist, template){
+
+    return MenuParentView.extend({
+
+        events: {
+        },
+
+        _initialize: function(){
+        },
+
+        _makeTemplateJSON: function(){
+            return null;
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/MSetupMenuView.js b/js/menus/MSetupMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..c8d1c70ddccfecdef58f160f9bdf58b218f06f7f
--- /dev/null
+++ b/js/menus/MSetupMenuView.js
@@ -0,0 +1,22 @@
+/**
+ * Created by aghassaei on 6/30/15.
+ */
+
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!mSetupMenuTemplate'], function($, _, MenuParentView, plist, template){
+
+    return MenuParentView.extend({
+
+        events: {
+        },
+
+        _initialize: function(){
+        },
+
+        _makeTemplateJSON: function(){
+            return null;
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/MStaticMenuView.js b/js/menus/MStaticMenuView.js
new file mode 100644
index 0000000000000000000000000000000000000000..851b5d1521e45c43c0f8483bcf0b51d0f1ea8d4a
--- /dev/null
+++ b/js/menus/MStaticMenuView.js
@@ -0,0 +1,22 @@
+/**
+ * Created by aghassaei on 6/30/15.
+ */
+
+
+define(['jquery', 'underscore', 'menuParent', 'plist', 'text!mStaticMenuTemplate'], function($, _, MenuParentView, plist, template){
+
+    return MenuParentView.extend({
+
+        events: {
+        },
+
+        _initialize: function(){
+        },
+
+        _makeTemplateJSON: function(){
+            return null;
+        },
+
+        template: _.template(template)
+    });
+});
\ No newline at end of file
diff --git a/js/menus/Navbar.js b/js/menus/Navbar.js
index 9e90c18d8cc46223919e21de703cd2151db898a1..93a2a143e5f7aed6c95de51f28c9588d5ec275fc 100644
--- a/js/menus/Navbar.js
+++ b/js/menus/Navbar.js
@@ -3,7 +3,7 @@
  */
 
 
-define(['jquery', 'underscore', 'backbone', 'fileSaver', 'navViewMenu'], function($, _, Backbone, fileSaver, NavViewMenu){
+define(['jquery', 'underscore', 'backbone', 'fileSaver', 'navViewMenu', 'appState'], function($, _, Backbone, fileSaver, NavViewMenu, appState){
 
     return Backbone.View.extend({
 
@@ -55,6 +55,10 @@ define(['jquery', 'underscore', 'backbone', 'fileSaver', 'navViewMenu'], functio
                 return;
             }
             e.preventDefault();
+            if (navSelection == "navSim"){//choose which simulation package to pull up
+                this.model.set("currentNav", appState.get("materialClass") + "NavSim");
+                return;
+            }
             if (navSelection) this.model.set("currentNav", navSelection);
         },
 
diff --git a/js/menus/templates/EDynamicMenuView.html b/js/menus/templates/EDynamicMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..b0b5ade9ef056008a02f28f8f90878a4339bc549
--- /dev/null
+++ b/js/menus/templates/EDynamicMenuView.html
@@ -0,0 +1 @@
+dynamic calculations
\ No newline at end of file
diff --git a/js/menus/templates/ESetupMenuView.html b/js/menus/templates/ESetupMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..c14ccd9ceaa2f8236914251793bb62fd58887508
--- /dev/null
+++ b/js/menus/templates/ESetupMenuView.html
@@ -0,0 +1 @@
+boundaries
\ No newline at end of file
diff --git a/js/menus/templates/EStaticMenuView.html b/js/menus/templates/EStaticMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..3eade527c393eb44f332092728c57d15753430d2
--- /dev/null
+++ b/js/menus/templates/EStaticMenuView.html
@@ -0,0 +1 @@
+static calculations
\ No newline at end of file
diff --git a/js/menus/templates/MDynamicMenuView.html b/js/menus/templates/MDynamicMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..bfb4eadaef852177e02505c6f07141401f20a2bd
--- /dev/null
+++ b/js/menus/templates/MDynamicMenuView.html
@@ -0,0 +1 @@
+dynamics
\ No newline at end of file
diff --git a/js/menus/templates/MSetupMenuView.html b/js/menus/templates/MSetupMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..1edc0e9df5424a015b1d1843c5a16d04cc86abd9
--- /dev/null
+++ b/js/menus/templates/MSetupMenuView.html
@@ -0,0 +1 @@
+setup, boundary conditions, physics
\ No newline at end of file
diff --git a/js/menus/templates/MStaticMenuView.html b/js/menus/templates/MStaticMenuView.html
new file mode 100644
index 0000000000000000000000000000000000000000..e7a63db070a4e9a2af50d7d69a93ee2d4d86bcac
--- /dev/null
+++ b/js/menus/templates/MStaticMenuView.html
@@ -0,0 +1 @@
+statics
\ No newline at end of file
diff --git a/js/menus/templates/OptimizationMenuView.html b/js/menus/templates/OptimizationMenuView.html
index 5c68467dcbfe025d81bde9ab1b8b15ff1b3104a1..65d4345f0506a24cd4e7470218b85f525bd4e9b2 100644
--- a/js/menus/templates/OptimizationMenuView.html
+++ b/js/menus/templates/OptimizationMenuView.html
@@ -1 +1 @@
-input stiffness requirements of structure
\ No newline at end of file
+input goals
\ No newline at end of file
diff --git a/js/menus/templates/PhysicsMenuView.html b/js/menus/templates/PhysicsMenuView.html
deleted file mode 100644
index ab8e35ef5c36569b19c145f98d0035daad3bec43..0000000000000000000000000000000000000000
--- a/js/menus/templates/PhysicsMenuView.html
+++ /dev/null
@@ -1,5 +0,0 @@
-world physics: gravity, global forces
-<br/><br/>
-part connection stiffness
-<br/><br/>
-ground/fixed/boundary conditions definition
\ No newline at end of file
diff --git a/js/plists/PList.js b/js/plists/PList.js
index c01abc06f10c1b813ceb834561ff12a988a27c7d..6bb33bd949f8ff8556b1ec2cc263b20bfff76ea9 100644
--- a/js/plists/PList.js
+++ b/js/plists/PList.js
@@ -14,9 +14,16 @@ define(['three'], function(THREE){
                 part:"Part",
                 script:"Script"
             },
-            navSim:{
-                physics:"Physics",
-                part:"Part",
+            electronicNavSim:{
+                eSetup:"Connectivity",
+                eStatic:"Statics",
+                eDynamic:"Dynamics",
+                optimize:"Optimize"
+            },
+            mechanicalNavSim:{
+                mSetup:"Setup",
+                mStatic:"Statics",
+                mDynamic:"Dynamics",
                 optimize:"Optimize"
             },
             navAssemble:{
@@ -24,13 +31,14 @@ define(['three'], function(THREE){
                 cam: "Process",
                 animate:"Preview"
             },
-            navComposite:{
-                composite:"Composite Editor"
-            },
             navComm:{
                 setupComm: "Setup",
                 send: "Send"
             },
+            //maybe do something different here?
+            navComposite:{
+                composite:"Composite Editor"
+            },
             navMaterial:{
                 materialEditor: "Material Editor"
             }
diff --git a/js/three/FillGeometry.js b/js/three/FillGeometry.js
index 0e5aacaa321fe8752fc8f0423d7959627c75ffef..8fcf1f8b8472727c96d5c06222703a32b2fb9369 100644
--- a/js/three/FillGeometry.js
+++ b/js/three/FillGeometry.js
@@ -5,7 +5,7 @@
 define(['three', 'underscore', 'backbone', 'lattice', 'threeModel'],
     function(THREE, _, Backbone, lattice, three){
 
-    return Backbone.Model.extend({
+    var FillGeometry = Backbone.Model.extend({
     
         defaults: {
             filename: "No File Loaded",
@@ -128,5 +128,7 @@ define(['three', 'underscore', 'backbone', 'lattice', 'threeModel'],
             three.render();
         }
     });
+
+    return new FillGeometry();
 });