diff --git a/js/cam/assemblers/AssemblerPost.js b/js/cam/assemblers/AssemblerPost.js
index 2c007a6f0c673da7d7e250c4e4a37740a9d31858..13757e2ebb540c1c0c6b7d6858b48b9241067e2c 100644
--- a/js/cam/assemblers/AssemblerPost.js
+++ b/js/cam/assemblers/AssemblerPost.js
@@ -126,6 +126,9 @@ define(['underscore', 'appState', 'lattice', 'cam'], function(_, appState, latti
         var offset = self.components.substrate.centerOfRotation.clone().multiplyScalar(settings.scale);//offset in lattice pitch
         var dist = position.clone().sub(offset);
         position = offset.add(new THREE.Vector3(-dist.y-3*settings.scale, dist.x-0.335, position.z));
+    } else {
+        position.y -= 1;
+        position.x -= settings.scale;
     }
 
     var stock = _.find(self.stock, function(thisStock){
diff --git a/js/models/FileSaver.js b/js/models/FileSaver.js
index 4b589eac5ec3859440b3d37ed9df79b2643e0d7b..09145f3c6512952d2908f97a03aca12b34a0051c 100644
--- a/js/models/FileSaver.js
+++ b/js/models/FileSaver.js
@@ -7,7 +7,13 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra
 
     function _saveFile(data, name, extension){
 //        require(['jsonFn'], function(JSONfn){
-            var blob = new Blob([JSON.stringify(data, null, '\t')], {type: "text/plain;charset=utf-8"});
+//        console.log(data.toString());
+            var jsonString = JSON.stringify(data, null, '\t');
+            if (data.assembler){
+                jsonString.replace(/\\"/g,"\uFFFF"); //U+ FFFF
+                jsonString = jsonString.replace(/\"([^"]+)\":/g,"$1:").replace(/\uFFFF/g,"\\\"");
+            }
+            var blob = new Blob([jsonString], {type: "text/plain;charset=utf-8"});
             saveAs(blob, name + extension);
 //        });
     }