diff --git a/README.md b/README.md
index afd04cf6b8874c7a8a6072fc8d21c1f32a3b87f8..5b8ef67f9aea58f396745d81d85dc5dc1dbfc015 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,41 @@
 ## ENGINEERING JOURNAL
 ### Jingyan Ling
 
+### 08/15/2019
+
+- Solving issue: Connection between isolation box and parallel traces
+  
+~~~
+
+input: endpoints of a path (each endpoints has i+1 for finding a line), iso_size, trace_width
+output: intersect points*2 , draw isolation box in the process
+
+input= contact_ept, further_ept, size, width
+
+for pin_loc in all pin locations:
+  if the distance between endpoint1 and pin_loc is less than tolerance:
+    l=line(contact_ept,further_ept)
+    parallel_traces=find_offset(l,width)
+    iso_l_pts=isolation_box_linepts(size,pin_loc)
+    contact_list=[]
+    for l in parallel_traces:
+      contact=find_contact_iso_trace(l,iso_l_pts,further_ept)
+      contact_list.append(contact)
+    
+    draw_list=[]
+    draw_list.append(contact_list[0])
+    while len(iso_boundary)!=0:
+      for points in iso_boundary:
+        find a point that is closest to last point of draw_list
+        if not such point is inside of two contacts:
+          draw_list.append(points)
+        iso_boundary.remove(point)
+          
+
+
+
+~~~
+
 
 ### 08/14/2019
 - Preparing software demo
diff --git a/paperbot_ee_autoroute/roco_ee_dwg_processing.py b/paperbot_ee_autoroute/roco_ee_dwg_processing.py
index 66576b218f2d3732e15c81807bc4857d1bc5839d..58bffe25f3a62d35a01d36ffab5e26b0a7c19a1e 100644
--- a/paperbot_ee_autoroute/roco_ee_dwg_processing.py
+++ b/paperbot_ee_autoroute/roco_ee_dwg_processing.py
@@ -55,64 +55,64 @@ class post_process():
                     'linetype':'DASHDOT'})
 
     def parallel_trace(self,width):
-        # for path in self.wiring:
-        path=self.wiring[0]
-        for i in range(len(path)-1):
-            pt1=path[i][0],path[i][1]
-            pt2=path[i+1][0],path[i+1][1]
-            
-            l1=find_line_eq(pt1,pt2)
-            
-            if i<len(path)-2: #before last line
-                pt3=path[i+2][0],path[i+2][1]
-                l2=find_line_eq(pt2,pt3)
-            
-            
-            #filter bi-sector
-                _bi=find_angle_bisector(l1,l2)
-                for sector in _bi:
-                    if if_two_pt_on_diff_side(sector,pt1,pt3):
-                        bi=sector
+        for path in self.wiring:
+        # path=self.wiring[0]
+            for i in range(len(path)-1):
+                pt1=path[i][0],path[i][1]
+                pt2=path[i+1][0],path[i+1][1]
                 
-                if i==0: # if the first point
-                    s1,s2=self.find_iso_bry(width,pt1,pt2)
-                    offl1_in,offl1_out=find_offset(l1,width)
+                l1=find_line_eq(pt1,pt2)
+                
+                if i<len(path)-2: #before last line
+                    pt3=path[i+2][0],path[i+2][1]
+                    l2=find_line_eq(pt2,pt3)
+                
+                
+                #filter bi-sector
+                    _bi=find_angle_bisector(l1,l2)
+                    for sector in _bi:
+                        if if_two_pt_on_diff_side(sector,pt1,pt3):
+                            bi=sector
+                    
+                    if i==0: # if the first point
+                        s1,s2=self.find_iso_bry(width,pt1,pt2)
+                        offl1_in,offl1_out=find_offset(l1,width)
+                        # if l1[2]==0:
+                        #     s1=[pt1[0]-width/2,pt1[1]]
+                        #     s2=[pt1[0]+width/2,pt1[1]]
+                        # else:
+                        #     s1=[pt1[0],offl1_in[0]*pt1[0]+offl1_in[1]]
+                        #     s2=[pt1[0],offl1_out[0]*pt1[0]+offl1_out[1]]
+                    
+                    offl2_in,offl2_out=find_offset(l2,width)
+                
+                    e1=find_intersect(offl1_in,bi)
+                    e2=find_intersect(offl1_out,bi)
+                else:
+                    e1,e2=self.find_iso_bry(width,pt2,pt1)
                     # if l1[2]==0:
-                    #     s1=[pt1[0]-width/2,pt1[1]]
-                    #     s2=[pt1[0]+width/2,pt1[1]]
+                    #     e1=[pt2[0]-width/2,pt2[1]]
+                    #     e2=[pt2[0]+width/2,pt2[1]]
                     # else:
-                    #     s1=[pt1[0],offl1_in[0]*pt1[0]+offl1_in[1]]
-                    #     s2=[pt1[0],offl1_out[0]*pt1[0]+offl1_out[1]]
-                
-                offl2_in,offl2_out=find_offset(l2,width)
-            
-                e1=find_intersect(offl1_in,bi)
-                e2=find_intersect(offl1_out,bi)
-            else:
-                e1,e2=self.find_iso_bry(width,pt2,pt1)
-                # if l1[2]==0:
-                #     e1=[pt2[0]-width/2,pt2[1]]
-                #     e2=[pt2[0]+width/2,pt2[1]]
-                # else:
-                #     e1=[pt2[0],offl1_in[0]*pt2[0]+offl1_in[1]]
-                #     e2=[pt2[0],offl1_out[0]*pt2[0]+offl1_out[1]]
+                    #     e1=[pt2[0],offl1_in[0]*pt2[0]+offl1_in[1]]
+                    #     e2=[pt2[0],offl1_out[0]*pt2[0]+offl1_out[1]]
 
-            
-            self.msp.add_line(s1,e1,dxfattribs={
-                'layer':'Circuit',
-                'linetype':'DASHDOT'})
-            self.msp.add_line(s2,e2,dxfattribs={
-                'layer':'Circuit',
-                'linetype':'DASHDOT'})              
+                
+                self.msp.add_line(s1,e1,dxfattribs={
+                    'layer':'Circuit',
+                    'linetype':'DASHDOT'})
+                self.msp.add_line(s2,e2,dxfattribs={
+                    'layer':'Circuit',
+                    'linetype':'DASHDOT'})              
 
-            
-            if i<len(path)-2:
-                if list(e1)==list(find_intersect(offl2_out,bi)):
-                    offl1_out,offl1_in=find_offset(l2,width)
-                else:
-                    offl1_in,offl1_out=find_offset(l2,width)
-                s1=find_intersect(offl1_in,bi)
-                s2=find_intersect(offl1_out,bi)
+                
+                if i<len(path)-2:
+                    if list(e1)==list(find_intersect(offl2_out,bi)):
+                        offl1_out,offl1_in=find_offset(l2,width)
+                    else:
+                        offl1_in,offl1_out=find_offset(l2,width)
+                    s1=find_intersect(offl1_in,bi)
+                    s2=find_intersect(offl1_out,bi)
     
     def draw_cross_cut(self,size):
         for module_pin in self.pin_at:
@@ -143,6 +143,22 @@ class post_process():
 
         return draw_pt1,draw_pt2  
 
+def find_contact_iso_trace(trace_line,iso_l_pts,further_ept):
+    inter_temp=[]
+    for l_pts in iso_l_pts:
+        pt1=l_pts[0]
+        pt2=l_pts[1]
+        l=find_line_eq(pt1,pt2)
+        inter=find_intersect(l,trace_line)
+        if type(inter)!=type(None):
+            if inter[0]>= pt1[0] and inter[0]<=pt2[0] and inter[1]>=pt1[1] and inter[1] <=pt2[1]:
+                inter_temp.append(inter)
+    dis_arr=[]
+    for p in inter_temp:
+        dis=sqrt((p[0]-further_ept[0])**2+(p[1]-further_ept[1])**2)
+        dis_arr.append(dis)
+    contact=inter_temp[np.argmin(dis_arr)]
+    return contact
 
 def isolation_box_linepts(box_size,pt):
     """