modificiation
diff --git a/test_integrate/analog_rf_wrapper_gen.gds.gz b/test_integrate/analog_rf_wrapper_gen.gds.gz
index e2aac32..1d69fd3 100644
--- a/test_integrate/analog_rf_wrapper_gen.gds.gz
+++ b/test_integrate/analog_rf_wrapper_gen.gds.gz
Binary files differ
diff --git a/test_integrate/integrate_caravel.py.save b/test_integrate/integrate_caravel.py.save
new file mode 100644
index 0000000..4d45b0e
--- /dev/null
+++ b/test_integrate/integrate_caravel.py.save
@@ -0,0 +1,58 @@
+####################################################################################################
+##
+###################################################################################################
+
+import pya
+import os
+import glob
+
+layout = pya.Layout()
+layout.dbu = 0.001
+
+wrapper_path = os.path.join(os.path.abspath(".."), "test_integrate", "caravel.gds")
+layout.read(wrapper_path)
+output_layout_path = os.path.join(os.path.abspath(".."), "test_integrate", "analog_rf_wrapper_gen.gds")
+gds_files = glob.glob(os.path.join("*", )
+
+wrapper_top_cell = "caravel"
+
+## TODO: Find cell by name in a better way from klayout. layout.cell_by_name(Name)
+TOP= None
+
+for tc in layout.top_cells():
+    if tc.name == wrapper_top_cell:
+        TOP = tc
+        break
+
+print("## Integrating GDS files: ", gds_files)
+
+start_point = (10, 20)
+block_space = 20
+
+x = start_point[0]
+y = start_point[1]
+
+for f in gds_files:
+    layout.read(f)
+
+    for tc in layout.top_cells():
+    # we don't want to insert the topcell itself
+        if (tc.name != wrapper_top_cell):
+        
+            print("## Adding " + tc.name)
+            cell_index = tc.cell_index()
+
+            cbbx = tc.bbox()
+            ll = cbbx.p1
+            ur = cbbx.p2
+            h = cbbx.height()
+
+            x -= ll.x
+            y -= ll.y + h
+
+            new_instance=pya.CellInstArray(cell_index, pya.Trans(pya.Point(x, y)))
+            TOP.insert(new_instance)
+            y += block_space
+
+layout.write(output_layout_path)
+