diff --git a/README.md b/README.md
index 053a7d0fd056578bfedc7d1930bcce7bd3204b49..69fc5eb0bfa50070456e318a62458aa250d3e549 100644
--- a/README.md
+++ b/README.md
@@ -213,6 +213,10 @@
 - 2. Use `KiCAD 5` python API to sue `FreeRouting` 
 - 3. Use `KiCAD 4` python API to use builtin auto-routing
 
+###### 1 
+- `FreeRouting` input format: `dsn`, `lef`, `def`
+- `FreeRouting` output format: `ses`, `def`
+- `FreeRouting` can take arbitrary board outlines shape
 - TODO:
   - If can run KiCAD 4 from python
   - Check `FreeRouting` API, see if a acceptable file can be generated from things on hand
diff --git a/analyze_dxf.py b/analyze_dxf.py
index 42039685f7a9f115295feceaacf8291e1db53a3b..18e22869d4f65712fa890821e3d00500c11b7246 100644
--- a/analyze_dxf.py
+++ b/analyze_dxf.py
@@ -13,7 +13,7 @@ import copy
 import matplotlib.pyplot as plt
 import matplotlib.animation as animation
 from matplotlib import cm
-from array2gif import write_gif
+
 
 class auto_rounter:
     def __init__(self,path,dxf_file):
diff --git a/auto_layouteditor.py b/auto_layouteditor.py
new file mode 100644
index 0000000000000000000000000000000000000000..324dffa85fcf6db39e7e666249a2c1b276d20e0c
--- /dev/null
+++ b/auto_layouteditor.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+import numpy as np
+import ezdxf 
+import random
+from math import sqrt
+import copy
+from LayoutEditor import LayoutScript
+from LayoutScript import *
+
+l=project.newLayout();
+
+#rename a layer
+layers.num(6).name="new text"
+
+c=l.drawing.currentCell
+c.cellName="test-cell-python"
+
+c.addBox(0,0,5000,7000,5)
+c.addRoundedBox(10000,0,5000,7000,500,5)
+c.addChamferedBox(20000,0,5000,7000,500,5)
+c.addCircleBox(point(0,10000),point(5000,17000),5)
+c.addEllipse(5,point(12500,15000),2500,3500)
+c.addPolygonArc(point(22500,15000),2500,3500,0,340,5)
+e=c.addText(5,point(25,25000),layers.num(6).name)
+e.setWidth(1000)
+l.drawing.saveFile("/home/jingyan/Documents/summer_intern_lemur/roco_electrical/testout.dsn")
+
+print("Python script completed")
\ No newline at end of file
diff --git a/layout_test.py b/layout_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..b4803fcafb1b46107679d5adb84ba6fbfd478256
--- /dev/null
+++ b/layout_test.py
@@ -0,0 +1,25 @@
+# load the LayoutScript module
+import LayoutScript
+# use LayoutScript without prefix
+from LayoutScript import *
+
+#create a new layout object
+l=project.newLayout();
+
+#rename a layer
+layers.num(6).name="new text"
+
+c=l.drawing.currentCell
+c.cellName="test-cell-python"
+
+c.addBox(0,0,5000,7000,5)
+c.addRoundedBox(10000,0,5000,7000,500,5)
+c.addChamferedBox(20000,0,5000,7000,500,5)
+c.addCircleBox(point(0,10000),point(5000,17000),5)
+c.addEllipse(5,point(12500,15000),2500,3500)
+c.addPolygonArc(point(22500,15000),2500,3500,0,340,5)
+e=c.addText(5,point(25,25000),layers.num(6).name)
+e.setWidth(1000)
+l.drawing.saveFile("/home/jingyan/Documents/summer_intern_lemur/roco_electrical/testout.gds")
+
+print("Python script completed")
\ No newline at end of file
diff --git a/testout.gds b/testout.gds
new file mode 100644
index 0000000000000000000000000000000000000000..d76872df34b83c16315acf51ce9c9badacf4d468
Binary files /dev/null and b/testout.gds differ