diff --git a/js/menus/AssemblerMenuView.js b/js/menus/AssemblerMenuView.js
index 5e20cc3140e8a338d5db75fc4e672e91bc612926..3eeca0c0bd0c1bc6151f44dbc062cce06ddbeb61 100644
--- a/js/menus/AssemblerMenuView.js
+++ b/js/menus/AssemblerMenuView.js
@@ -8,8 +8,6 @@ AssemblerMenuView = Backbone.View.extend({
     el: "#menuContent",
 
     events: {
-        "click .camStrategy":                            "_selectCamStrategy",
-        "click .machineType":                            "_selectMachine"
     },
 
     initialize: function(options){
@@ -23,13 +21,6 @@ AssemblerMenuView = Backbone.View.extend({
 
     _onKeyup: function(e){
         if (this.model.get("currentTab") != "assembler") return;
-
-        if ($("input").is(":focus") && e.keyCode == 13) {//enter key
-            $(e.target).blur();
-            this.render();
-            return;
-        }
-
         if ($(".placementOrder").is(":focus")) this._updatePlacementOrder(e);
     },
 
@@ -38,24 +29,14 @@ AssemblerMenuView = Backbone.View.extend({
         var newVal = $(e.target).val();
         if (newVal.length<3) return;//todo this isn't quite right
         this.assembler.set("placementOrder", newVal);
-        this.assembler.trigger("change:placementOrder");
-    },
-
-    _selectCamStrategy: function(e){
-        e.preventDefault();
-        this.assembler.set("camStrategy", $(e.target).data("type"));
-    },
-
-    _selectMachine: function(e){
-        e.preventDefault();
-        this.assembler.set("machineName", $(e.target).data("type"));
+//        this.assembler.trigger("change:placementOrder");
     },
 
     render: function(){
         if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "assembler") return;
         if ($("input").is(":focus")) return;
-        this.$el.html(this.template(_.extend(this.model.toJSON(), this.assembler.toJSON(), globals.lattice.toJSON())));
+        this.$el.html(this.template(_.extend(this.model.toJSON(), this.assembler.toJSON(), globals.lattice.toJSON(), globals.plist)));
     },
 
     template: _.template('\
@@ -64,7 +45,7 @@ AssemblerMenuView = Backbone.View.extend({
                 <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allMachineTypes[cellType][connectionType][machineName] %><span class="caret"></span></button>\
                 <ul role="menu" class="dropdown-menu">\
                     <% _.each(_.keys(allMachineTypes[cellType][connectionType]), function(key){ %>\
-                        <li><a class="machineType" data-type="<%= key %>" href="#"><%= allMachineTypes[cellType][connectionType][key] %></a></li>\
+                        <li><a class="assembler dropdownSelector" data-property="machineName" data-value="<%= key %>" href="#"><%= allMachineTypes[cellType][connectionType][key] %></a></li>\
                     <% }); %>\
                 </ul>\
             </div><br/><br/>\
@@ -73,7 +54,7 @@ AssemblerMenuView = Backbone.View.extend({
                 <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allAssemblyStrategies[camStrategy] %><span class="caret"></span></button>\
                 <ul role="menu" class="dropdown-menu">\
                     <% _.each(_.keys(allAssemblyStrategies), function(key){ %>\
-                        <li><a class="camStrategy" data-type="<%= key %>" href="#"><%= allAssemblyStrategies[key] %></a></li>\
+                        <li><a class="assembler dropdownSelector" data-property="camStrategy" data-value="<%= key %>" href="#"><%= allAssemblyStrategies[key] %></a></li>\
                     <% }); %>\
                 </ul>\
             </div><br/><br/>\
diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js
index 18c8684d086d8282f7e805621ed9a47e54ebb1f9..b14639e2d31db113625220652214673fadf40376 100644
--- a/js/menus/LatticeMenuView.js
+++ b/js/menus/LatticeMenuView.js
@@ -2,8 +2,6 @@
  * Created by aghassaei on 1/26/15.
  */
 
-//todo scale input update renders view
-
 
 LatticeMenuView = Backbone.View.extend({
 
@@ -44,6 +42,7 @@ LatticeMenuView = Backbone.View.extend({
     render: function(){
         if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "lattice") return;
+        if ($("input").is(":focus")) return;
         this.$el.html(this.template(_.extend(globals.lattice.toJSON(), globals.plist)));
 
         $('#latticeMenuScaleSlider').slider({
diff --git a/js/menus/MenuWrapperView.js b/js/menus/MenuWrapperView.js
index 9b020b06c5ca976d2dda1ca3fcf0a8f47ebfcd23..fe18e2ffb6134a1343a00d3392d7d10ed24ea959 100644
--- a/js/menus/MenuWrapperView.js
+++ b/js/menus/MenuWrapperView.js
@@ -80,11 +80,18 @@ MenuWrapper = Backbone.View.extend({
         }
         var key = $target.data("key");
         if (key){
-            if ($target.hasClass("lattice")) globals.lattice.get(property)[key] = newVal;
-            globals.lattice.trigger("change:"+property);
+            if ($target.hasClass("lattice")) {
+                globals.lattice.get(property)[key] = newVal;
+                globals.lattice.trigger("change:"+property);
+            } else if ($target.hasClass("assembler")) {
+                globals.assembler.get(property)[key] = newVal;
+                globals.assembler.trigger("change:"+property);
+            }
+
             return;
         }
         if ($target.hasClass("lattice")) globals.lattice.set(property, newVal);
+        else if ($target.hasClass("assembler")) globals.assembler.set(property, newVal);
     },
 
     _makeDropdownSelection: function(e){
@@ -93,6 +100,7 @@ MenuWrapper = Backbone.View.extend({
         var value = $target.data("value");
         if (!property || !value) return;
         if ($target.hasClass("lattice")) globals.lattice.set(property, value);
+        else if ($target.hasClass("assembler")) globals.assembler.set(property, value);
     },
 
     _clearCells: function(e){
@@ -102,6 +110,7 @@ MenuWrapper = Backbone.View.extend({
 
 
 
+
     _tabWasSelected: function(e){
         e.preventDefault();
         var tabName = $(e.target).parent().data('name');
diff --git a/js/menus/PartMenuView.js b/js/menus/PartMenuView.js
index 6a6d7b55a7c9517592c588b2e64153d473a7fbf0..1cca9485130ed7f7c6bc6507d4d3647ab7f9a811 100644
--- a/js/menus/PartMenuView.js
+++ b/js/menus/PartMenuView.js
@@ -20,6 +20,7 @@ PartMenuView = Backbone.View.extend({
     render: function(){
         if (this.model.changedAttributes()["currentNav"]) return;
         if (this.model.get("currentTab") != "part") return;
+        if ($("input").is(":focus")) return;
         this.$el.html(this.template(_.extend(globals.lattice.toJSON(), globals.plist)));
     },