diff --git a/js/models/AppState.js b/js/models/AppState.js
index 0933d3310dcc9c8af8104855fe5413151809a648..61830789ef3e920ef9c055bf956f3967c4a4bd90 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -111,8 +111,7 @@ AppState = Backbone.Model.extend({
             this.downKeys[e.keyCode] = true;
         } else this.downKeys[e.keyCode] = false;
 
-
-        console.log(e.keyCode);
+//        console.log(e.keyCode);
         switch(e.keyCode){
             case 16://shift
                 e.preventDefault();
@@ -136,11 +135,16 @@ AppState = Backbone.Model.extend({
                 this.lattice.set("inverseMode", !this.lattice.get("inverseMode"));
                 break;
             case 83://s save
-//                e.preventDefault();
-//                if (e.ctrlKey || e.metaKey){//command
-//                    console.log("here");
-//                    dmaGlobals.lattice.saveAsJSON();
-//                }
+                e.preventDefault();
+                if (e.ctrlKey || e.metaKey){//command
+                    dmaGlobals.lattice.saveAsJSON();
+                }
+                break;
+            case 79://o open
+                e.preventDefault();
+                if (e.ctrlKey || e.metaKey){//command
+                    $("#jsonInput").click();
+                }
                 break;
             default:
                 break;
diff --git a/js/models/Lattice.js b/js/models/Lattice.js
index ac221c3a71008c2e1260eddf73efb6e6bb874ee7..f6d6d4af2b89a2b388f9edbab6242fb5efae88e2 100644
--- a/js/models/Lattice.js
+++ b/js/models/Lattice.js
@@ -147,7 +147,7 @@ Lattice = Backbone.Model.extend({
     //todo send clear all to three anddestroy without sceneRemove to cell
     clearCells: function(){
         this._iterCells(this.get("cells"), function(cell){
-            if (cell) cell.destroy();
+            if (cell && cell.destroy) cell.destroy();
         });
         this.set("cells", [[[null]]]);
         this._clearInverseCells();