diff --git a/configuration/floorplan.tcl b/configuration/floorplan.tcl
index 57d49b7..1e68d89 100644
--- a/configuration/floorplan.tcl
+++ b/configuration/floorplan.tcl
@@ -2,6 +2,7 @@
 set ::env(FP_IO_VMETAL) 2
 set ::env(FP_IO_HMETAL) 3
 
+set ::env(FP_SIZING) relative
 set ::env(FP_CORE_UTIL) 50
 set ::env(FP_CORE_MARGIN) 5.52
 set ::env(FP_ASPECT_RATIO) 1
diff --git a/configuration/general.tcl b/configuration/general.tcl
index 34d57d3..f11aa93 100644
--- a/configuration/general.tcl
+++ b/configuration/general.tcl
@@ -1,5 +1,5 @@
 # default pdk 
-set ::env(PDK) "ef-skywater-s8/EFS8A/"
+set ::env(PDK) "EFS8A/"
 set ::env(PDK_VARIANT) "scs8hd"
 set ::env(PDK_ROOT) $::env(OPENLANE_ROOT)/pdks/
 set ::env(USE_GPIO_PADS) 0
diff --git a/designs/striVe_flat/config_mod_diearea.tcl b/designs/striVe_flat/config_mod_diearea.tcl
index 3ba90b9..babb440 100644
--- a/designs/striVe_flat/config_mod_diearea.tcl
+++ b/designs/striVe_flat/config_mod_diearea.tcl
@@ -10,9 +10,9 @@
 
 set ::env(RUN_SIMPLE_CTS) 0
 set ::env(FILL_INSERTION) 1
-set ::env(GLB_RT_LI1_ADJUSTMENT) 0.75
-set ::env(GLB_RT_MET1_ADJUSTMENT) 0.75
-set ::env(FP_CORE_MARGIN) 155
+set ::env(GLB_RT_LI1_ADJUSTMENT) 1.0
+set ::env(GLB_RT_MET1_ADJUSTMENT) 1.0
+set ::env(FP_CORE_MARGIN) 162
 set ::env(CLOCK_NET) "clk"
 #set ::env(SYNTH_TOP_LEVEL) 1
 set ::env(USE_GPIO_PADS) 1
diff --git a/designs/striVe_flat/toplevel_mod_diearea.tcl b/designs/striVe_flat/toplevel_mod_diearea.tcl
index 577b90b..18418e7 100644
--- a/designs/striVe_flat/toplevel_mod_diearea.tcl
+++ b/designs/striVe_flat/toplevel_mod_diearea.tcl
@@ -34,5 +34,7 @@
 run_placement
 gen_pdn
 move_pins -from $pinsonly -to $::env(CURRENT_DEF)
+exec python3 $::env(SCRIPTS_DIR)/zeroize_origin_def.py < $::env(CURRENT_DEF) > $::env(CURRENT_DEF).zeroized
+exec mv $::env(CURRENT_DEF).zeroized $::env(CURRENT_DEF)
 run_routing
 #run_magic
diff --git a/docker_build/Makefile b/docker_build/Makefile
index 5b5a108..aec5207 100644
--- a/docker_build/Makefile
+++ b/docker_build/Makefile
@@ -3,7 +3,7 @@
 #ROOT = sudo
 
 #TOOLS = brown_yosys tapcell replace magic cts ioplacer pdn opendp resizer route macroplacer fastroute opensta yosys
-TOOLS = replace ioplacer opendp route fastroute opensta yosys tapcell magic resizer addspacers openroad_flow padring
+TOOLS = replace ioplacer opendp route fastroute opensta yosys tapcell magic resizer addspacers openroad_flow padring netgen vlogtoverilog
 
 TOOL_BUILD_TARGETS = $(foreach tool,$(TOOLS),build-$(tool))
 TOOL_EXPORT_TARGETS_PHONY = $(foreach tool,$(TOOLS),export-$(tool))
diff --git a/docker_build/docker/netgen/Dockerfile b/docker_build/docker/netgen/Dockerfile
new file mode 100644
index 0000000..b987f77
--- /dev/null
+++ b/docker_build/docker/netgen/Dockerfile
@@ -0,0 +1,35 @@
+# syntax = docker/dockerfile:1.0-experimental
+FROM centos:centos6 as build
+
+# Common development tools and libraries (kitchen sink approach)
+RUN yum groupinstall -y "Development Tools" "Development Libraries"
+RUN yum -y install centos-release-scl && \
+    yum -y install devtoolset-8 devtoolset-8-libatomic-devel
+
+ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc \
+    CPP=/opt/rh/devtoolset-8/root/usr/bin/cpp \
+    CXX="/opt/rh/devtoolset-8/root/usr/bin/g++" \
+    PATH=/opt/rh/devtoolset-8/root/usr/bin:$PATH \
+    LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:/opt/rh/devtoolset-8/root/usr/lib64/dyninst:/opt/rh/devtoolset-8/root/usr/lib/dyninst:/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:$LD_LIBRARY_PATH
+#
+
+# netgen dependencies
+RUN yum install -y csh wget tcl-devel tk-devel libX11-devel cairo-devel ncurses-devel
+
+# git clone netgen components
+RUN git clone https://github.com/RTimothyEdwards/netgen
+
+WORKDIR "netgen"
+
+
+# build
+RUN ./configure --prefix=/build && \
+    make -j4 && \
+    make install
+
+RUN mkdir -p /build/version/
+
+RUN date +"Build Timestamp: %Y-%m-%d_%H-%M-%S" > /build/version/netgen.version
+RUN git rev-parse HEAD >> /build/version/netgen.version
+RUN tar -czf /build.tar.gz /build
+
diff --git a/docker_build/docker/vlogtoverilog/Dockerfile b/docker_build/docker/vlogtoverilog/Dockerfile
new file mode 100644
index 0000000..45e896d
--- /dev/null
+++ b/docker_build/docker/vlogtoverilog/Dockerfile
@@ -0,0 +1,29 @@
+# syntax = docker/dockerfile:1.0-experimental
+FROM centos:centos6 as build
+
+# install gcc 6
+RUN yum -y install centos-release-scl && \
+    yum -y install devtoolset-6 devtoolset-6-libatomic-devel
+ENV CC=/opt/rh/devtoolset-6/root/usr/bin/gcc \
+    CPP=/opt/rh/devtoolset-6/root/usr/bin/cpp \
+    CXX=/opt/rh/devtoolset-6/root/usr/bin/g++ \
+    PATH=/opt/rh/devtoolset-6/root/usr/bin:$PATH \
+    LD_LIBRARY_PATH=/opt/rh/devtoolset-6/root/usr/lib64:/opt/rh/devtoolset-6/root/usr/lib:/opt/rh/devtoolset-6/root/usr/lib64/dyninst:/opt/rh/devtoolset-6/root/usr/lib/dyninst:/opt/rh/devtoolset-6/root/usr/lib64:/opt/rh/devtoolset-6/root/usr/lib:$LD_LIBRARY_PATH
+
+RUN yum install -y git 
+RUN cd
+
+RUN git clone https://github.com/RTimothyEdwards/qflow
+
+WORKDIR qflow
+RUN git checkout a550469b63e910ede6e3022e2886bca96462c540
+
+RUN ./configure && cd src && make vlog2Verilog
+
+RUN mkdir -p /build/bin && cp /qflow/src/vlog2Verilog /build/bin/
+
+RUN mkdir -p /build/version/
+RUN date +"Build Timestamp: %Y-%m-%d_%H-%M-%S" > /build/version/vlog2Verilog.version
+RUN git rev-parse HEAD >> /build/version/vlog2Verilog.version
+RUN tar -czf /build.tar.gz /build
+
diff --git a/docker_build/tar/netgen.tar.gz b/docker_build/tar/netgen.tar.gz
new file mode 100644
index 0000000..478c21c
--- /dev/null
+++ b/docker_build/tar/netgen.tar.gz
Binary files differ
diff --git a/docker_build/tar/vlogtoverilog.tar.gz b/docker_build/tar/vlogtoverilog.tar.gz
new file mode 100644
index 0000000..da61a12
--- /dev/null
+++ b/docker_build/tar/vlogtoverilog.tar.gz
Binary files differ
diff --git a/flow.tcl b/flow.tcl
index f4c1dc7..10a861b 100755
--- a/flow.tcl
+++ b/flow.tcl
@@ -20,6 +20,8 @@
 	run_routing
 	run_magic	
 	run_magic_drc
+	run_magic_spice_export
+	run_netgen
 }
 
 proc run_interactive_mode {args} {
@@ -27,6 +29,40 @@
 	exec tclsh |& tee /dev/tty
 }
 
+proc run_magic_drc_batch {args} {
+	set options {{-magicrc optional} \
+			{-tech optional} \
+			{-report required} \
+			{-design required} \
+			{-gds required}}
+	set flags {}
+	parse_key_args "run_magic_drc_batch" args arg_values $options flags_mag $flags 
+	if { [info exists arg_values(-magicrc)] } {
+		set magicrc [file normalize $arg_values(-magicrc)]
+	}
+	if { [info exists arg_values(-tech)] } {
+		set ::env(TECH) [file normalize $arg_values(-tech)]
+	}
+	set ::env(GDS_INPUT) [file normalize $arg_values(-gds)]
+	set ::env(REPORT_OUTPUT) [file normalize $arg_values(-report)]
+	set ::env(DESIGN_NAME) $arg_values(-design)
+	
+	if { [info exists magicrc] } {
+		exec magic \
+			-noconsole \
+			-dnull \
+			-rcfile $magicrc \
+			$::env(OPENLANE_ROOT)/scripts/magic_drc_batch.tcl \
+			</dev/null |& tee /dev/tty
+	} else {
+		exec magic \
+			-noconsole \
+			-dnull \
+			$::env(OPENLANE_ROOT)/scripts/magic_drc_batch.tcl \
+			</dev/null |& /dev/tty
+	}
+}
+
 proc run_file {args} {
 	set ::env(TCLLIBPATH) $::env(OPENLANE_ROOT)/scripts/tcl_commands/
 	exec tclsh $args |& tee /dev/tty
@@ -39,7 +75,7 @@
 	}
 
 
-set flags {-init_design_config -disable_output -interactive}
+set flags {-init_design_config -disable_output -interactive -drc}
 
 set argv_copy $argv
 parse_key_args "flow.tcl" argv arg_values $options flags_map $flags
@@ -50,6 +86,8 @@
 	} else {
 		run_interactive_mode "$argv_copy"
 	}
+} elseif { [info exists flags_map(-drc)] } {
+	run_magic_drc_batch {*}$argv_copy
 } else {
 	run_non_interactive_mode {*}$argv_copy
 }
diff --git a/mykey.pub b/mykey.pub
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/mykey.pub
diff --git a/pdks/EFS8A b/pdks/EFS8A
new file mode 120000
index 0000000..dedebb9
--- /dev/null
+++ b/pdks/EFS8A
@@ -0,0 +1 @@
+ef-skywater-s8/EFS8A
\ No newline at end of file
diff --git a/scripts/count_lvs.py b/scripts/count_lvs.py
new file mode 100755
index 0000000..0b5f23e
--- /dev/null
+++ b/scripts/count_lvs.py
@@ -0,0 +1,117 @@
+#!/usr/bin/python3
+#
+#---------------------------------------------------------
+# LVS failure check
+#
+# This is a Python script that parses the comp.json
+# output from netgen and reports on the number of
+# errors in the top-level netlist.
+#
+#---------------------------------------------------------
+# Written by Tim Edwards
+# efabless, inc.
+# Pulled from qflow GUI as standalone script Aug 20, 2018
+#---------------------------------------------------------
+
+import os
+import re
+import sys
+import json
+import argparse
+
+def count_LVS_failures(filename):
+    with open(filename, 'r') as cfile:
+        lvsdata = json.load(cfile)
+
+    # Count errors in the JSON file
+    failures = 0
+    devfail = 0
+    netfail = 0
+    pinfail = 0
+    propfail = 0
+    netdiff = 0
+    devdiff = 0
+    ncells = len(lvsdata)
+    for c in range(0, ncells):
+        cellrec = lvsdata[c]
+
+        if c == ncells - 1:
+            topcell = True
+        else:
+            topcell = False
+
+        # Most errors must only be counted for the top cell, because individual
+        # failing cells are flattened and the matching attempted again on the
+        # flattened netlist.
+
+        if topcell:
+            if 'devices' in cellrec:
+                devices = cellrec['devices']
+                devlist = [val for pair in zip(devices[0], devices[1]) for val in pair]
+                devpair = list(devlist[p:p + 2] for p in range(0, len(devlist), 2))
+                for dev in devpair:
+                    c1dev = dev[0]
+                    c2dev = dev[1]
+                    diffdevs = abs(c1dev[1] - c2dev[1])
+                    failures += diffdevs
+                    devdiff += diffdevs
+
+            if 'nets' in cellrec:
+                nets = cellrec['nets']
+                diffnets = abs(nets[0] - nets[1])
+                failures += diffnets
+                netdiff += diffnets
+
+            if 'badnets' in cellrec:
+                badnets = cellrec['badnets']
+                failures += len(badnets)
+                netfail += len(badnets)
+
+            if 'badelements' in cellrec:
+                badelements = cellrec['badelements']
+                failures += len(badelements)
+                devfail += len(badelements)
+
+            if 'pins' in cellrec:
+                pins = cellrec['pins']
+                pinlist = [val for pair in zip(pins[0], pins[1]) for val in pair]
+                pinpair = list(pinlist[p:p + 2] for p in range(0, len(pinlist), 2))
+                for pin in pinpair:
+                    # Avoid flagging global vs. local names, e.g., "gnd" vs. "gnd!,"
+                    # and ignore case when comparing pins.
+                    pin0 = re.sub('!$', '', pin[0].lower())
+                    pin1 = re.sub('!$', '', pin[1].lower())
+                    if pin0 != pin1:
+                        failures += 1
+                        pinfail += 1
+
+        # Property errors must be counted for every cell
+        if 'properties' in cellrec:
+            properties = cellrec['properties']
+            failures += len(properties)
+            propfail += len(properties)
+
+    return [failures, netfail, devfail, pinfail, propfail, netdiff, devdiff]
+
+if __name__ == '__main__':
+
+    parser = argparse.ArgumentParser(description='Parses netgen lvs')
+    parser.add_argument('--file', '-f', required=True)
+    args = parser.parse_args()
+    failures = count_LVS_failures(args.file)
+    total = failures[0]
+    if total > 0:
+        failed = True
+        print('LVS reports:')
+        print('    net count difference = ' + str(failures[5]))
+        print('    device count difference = ' + str(failures[6]))
+        print('    unmatched nets = ' + str(failures[1]))
+        print('    unmatched devices = ' + str(failures[2]))
+        print('    unmatched pins = ' + str(failures[3]))
+        print('    property failures = ' + str(failures[4]))
+    else:
+        print('LVS reports no net, device, pin, or property mismatches.')
+
+    print('')
+    print('Total errors = ' + str(total))
+ 
diff --git a/scripts/fastroute.tcl b/scripts/fastroute.tcl
index 7e3d8fe..4d3c4b6 100644
--- a/scripts/fastroute.tcl
+++ b/scripts/fastroute.tcl
@@ -6,6 +6,10 @@
 set_max_layer ${GLB_RT_MAXLAYER}
 set_layer_adjustment 1 ${GLB_RT_LI1_ADJUSTMENT}
 set_layer_adjustment 2 ${GLB_RT_MET1_ADJUSTMENT}
+set_unidirectional_routing false
+set_pitches_in_tile 10
+
+
 start_fastroute
 run_fastroute
 write_guides
diff --git a/scripts/magic_drc_batch.tcl b/scripts/magic_drc_batch.tcl
new file mode 100644
index 0000000..ca00086
--- /dev/null
+++ b/scripts/magic_drc_batch.tcl
@@ -0,0 +1,60 @@
+if { [info exists ::env(TECH)] } {
+	tech load $::env(TECH)
+}
+
+gds read $::env(GDS_INPUT)
+proc custom_drc_save_report {{cellname ""} {outfile ""}} {
+
+    if {$outfile == ""} {set outfile "drc.out"}
+
+    set fout [open $outfile w]
+    set oscale [cif scale out]
+
+    # magic::suspendall
+
+    if {$cellname == ""} {
+	select top cell
+        set cellname [cellname list self]
+	set origname ""
+    } else {
+	set origname [cellname list self]
+	puts stdout "loading $cellname\n"
+	flush stdout
+   
+	load $cellname
+	select top cell
+    }
+
+    drc check
+    set count [drc list count]
+
+    puts $fout "$cellname count: $count"
+    puts $fout "----------------------------------------"
+    set drcresult [drc listall why]
+    foreach {errtype coordlist} $drcresult {
+	puts $fout $errtype
+	puts $fout "----------------------------------------"
+	foreach coord $coordlist {
+	    set bllx [expr {$oscale * [lindex $coord 0]}]
+	    set blly [expr {$oscale * [lindex $coord 1]}]
+	    set burx [expr {$oscale * [lindex $coord 2]}]
+	    set bury [expr {$oscale * [lindex $coord 3]}]
+	    set coords [format " %.3f %.3f %.3f %.3f" $bllx $blly $burx $bury]
+	    puts $fout "$coords"
+	}
+	puts $fout "----------------------------------------"
+    }
+    puts $fout ""
+
+    if {$origname != ""} {
+	load $origname
+    }
+
+    # magic::resumeall
+
+    close $fout
+    puts "done with $outfile\n"
+    #flush stdout
+}
+
+custom_drc_save_report $::env(DESIGN_NAME) $::env(REPORT_OUTPUT)
diff --git a/scripts/tcl_commands/all.tcl b/scripts/tcl_commands/all.tcl
index dff8f5f..f4de39b 100644
--- a/scripts/tcl_commands/all.tcl
+++ b/scripts/tcl_commands/all.tcl
@@ -127,6 +127,7 @@
 		{tritonRoute routing/tritonRoute}
 		{magic magic/magic}
 		{cts cts/cts}
+		{lvs lvs/lvs}
 	}
 
 	set final_output \
@@ -137,6 +138,7 @@
 			[list tritonRoute routing/$::env(DESIGN_NAME).routing] \
 			[list cts cts/$::env(DESIGN_NAME).cts] \
 			[list magic magic/$::env(DESIGN_NAME).magic] \
+			[list lvs lvs/$::env(DESIGN_NAME).lvs] \
 		]
 
 	array set results_file_name [make_array $final_output $::env(RESULTS_DIR)]
@@ -158,11 +160,11 @@
 	}
 
 
-	try_catch mkdir -p $::env(RESULTS_DIR) $::env(TMP_DIR) $::env(LOG_DIR) $::env(REPORTS_DIR)
+	exec mkdir -p $::env(RESULTS_DIR) $::env(TMP_DIR) $::env(LOG_DIR) $::env(REPORTS_DIR)
 
-	set stages {synthesis floorplan placement cts routing magic}
+	set stages {synthesis floorplan placement cts routing magic lvs}
 	foreach stage $stages {
-		try_catch mkdir -p $::env(RESULTS_DIR)/$stage \
+		exec mkdir -p $::env(RESULTS_DIR)/$stage \
 			$::env(TMP_DIR)/$stage  \
 			$::env(LOG_DIR)/$stage \
 			$::env(REPORTS_DIR)/$stage
@@ -237,7 +239,6 @@
 	set_log ::env(LIB_MAX) $::env(LIB_MAX) $::env(GLB_CFG_FILE) 1
 	set_log ::env(LIB_TYPICAL) $::env(LIB_TYPICAL) $::env(GLB_CFG_FILE) 1
 	if { $::env(SYNTH_TOP_LEVEL) } {
-
 	set_log ::env(SYNTH_SCRIPT) "$::env(OPENLANE_ROOT)/scripts/synth_top.tcl" $::env(GLB_CFG_FILE) 0
 	} else {
 	set_log ::env(SYNTH_SCRIPT) "$::env(OPENLANE_ROOT)/scripts/synth.tcl" $::env(GLB_CFG_FILE) 0
@@ -248,7 +249,7 @@
 
 	# Floorplan
 	exec echo "# Floorplan config" >> $::env(GLB_CFG_FILE)
-	set_log ::env(FP_SIZING) "relative" $::env(GLB_CFG_FILE) 0; # absolute, relative
+	set_log ::env(FP_SIZING) $::env(FP_SIZING) $::env(GLB_CFG_FILE) 0; # absolute, relative
 	set_log ::env(FP_CORE_UTIL) $util $::env(GLB_CFG_FILE) 1
 	set_log ::env(FP_ASPECT_RATIO) $::env(FP_ASPECT_RATIO) $::env(GLB_CFG_FILE) 1
 	set_log ::env(FP_CORE_MARGIN) $::env(FP_CORE_MARGIN) $::env(GLB_CFG_FILE) 1
diff --git a/scripts/tcl_commands/lvs.tcl b/scripts/tcl_commands/lvs.tcl
new file mode 100644
index 0000000..a2165a8
--- /dev/null
+++ b/scripts/tcl_commands/lvs.tcl
@@ -0,0 +1,42 @@
+proc verilog_to_verilogPower {args} {
+	set options {{-input required} \
+			{-output required} \
+			{-lef required} \
+			{-power required} \
+			{-ground required}}
+	set flags {}
+	parse_key_args "verilog_to_verilogPower" args arg_values $options flags_map $flags
+	set bin vlog2Verilog
+	set in $arg_values(-input)
+	set out $arg_values(-output)
+	set power $arg_values(-power)
+	set gnd $arg_values(-ground)
+	set lef $arg_values(-lef)
+
+	try_catch $bin \
+		-v $power \
+		-g $gnd \
+		-l $lef \
+		$in |& tee $out
+}
+proc run_netgen {args} {
+	set ::env(NETGEN_SETUP_FILE) $::env(PDK_ROOT)/$::env(PDK)/libs.tech/netgen/$::env(PDK)_tech.lef ; # this should be definied in the pdk it's a tmp placeholder
+	set spice_in $::env(magic_result_file_tag).spice
+	set module_name $::env(DESIGN_NAME)
+	set verilog_in $::env(lvs_result_file_tag).v
+	set setup_file $::env(NETGEN_SETUP_FILE)
+	set output $::env(lvs_result_file_tag).log
+	verilog_to_verilogPower -input $::env(yosys_result_file_tag).v -output $verilog_in -lef $::env(MERGED_LEF) \
+		-power $::env(VDD_PIN) -ground $::env(GND_PIN)
+	exec netgen -batch lvs \
+		"$spice_in $module_name" \
+		"$verilog_in $module_name" \
+		$setup_file \
+		$output \
+		-json |& tee $::env(TERMINAL_OUTPUT) $::env(lvs_log_file_tag).log
+	exec python3 $::env(SCRIPTS_DIR)/count_lvs.py -f $::env(lvs_result_file_tag).json \
+		|& tee $::env(TERMINAL_OUTPUT) $::env(lvs_result_file_tag)_parsed.log
+	
+}
+
+package provide openlane 0.9
diff --git a/scripts/tcl_commands/magic.tcl b/scripts/tcl_commands/magic.tcl
new file mode 100644
index 0000000..24aa0f3
--- /dev/null
+++ b/scripts/tcl_commands/magic.tcl
@@ -0,0 +1,29 @@
+proc run_magic_spice_export {args} {
+	set magic_export $::env(TMP_DIR)/magic_spice.tcl
+set commands \
+"
+def read $::env(CURRENT_DEF)
+cd $::env(RESULTS_DIR)/magic/
+select top cell
+extract cell $::env(DESIGN_NAME)
+ext2spice lvs 
+ext2spice
+exec cp $::env(DESIGN_NAME).spice $::env(magic_result_file_tag).spice
+"
+	set magic_export_file [open $magic_export w]
+		puts $magic_export_file $commands
+	close $magic_export_file
+	set magicrc $::env(TMP_DIR)/magic.magicrc
+	set ::env(PDKPATH) "$::env(PDK_ROOT)/$::env(PDK)/"
+	set ::env(MAGPATH) "$::env(PDKPATH)/libs.ref/maglef"
+	exec envsubst < $::env(SCRIPTS_DIR)/tmp.magicrc > $magicrc
+	exec magic \
+		-noconsole \
+		-dnull \
+		-rcfile $magicrc \
+		$magic_export \
+		</dev/null \
+		|& tee $::env(TERMINAL_OUTPUT) $::env(magic_log_file_tag)_spice.log
+
+}
+package provide openlane 0.9
diff --git a/scripts/tcl_commands/pkgIndex.tcl b/scripts/tcl_commands/pkgIndex.tcl
index 4221bdd..d3653db 100755
--- a/scripts/tcl_commands/pkgIndex.tcl
+++ b/scripts/tcl_commands/pkgIndex.tcl
@@ -8,4 +8,4 @@
 # script is sourced, the variable $dir must contain the
 # full path name of this file's directory.
 
-package ifneeded openlane 0.9 [list source [file join $dir all.tcl]]\n[list source [file join $dir placement.tcl]]\n[list source [file join $dir init_design.tcl]]\n[list source [file join $dir floorplan.tcl]]\n[list source [file join $dir routing.tcl]]\n[list source [file join $dir cts.tcl]]\n[list source [file join $dir synthesis.tcl]]
+package ifneeded openlane 0.9 [list source [file join $dir lvs.tcl]]\n [file join $dir magic.tcl]]\n[file join $dir all.tcl]]\n[list source [file join $dir placement.tcl]]\n[list source [file join $dir init_design.tcl]]\n[list source [file join $dir floorplan.tcl]]\n[list source [file join $dir routing.tcl]]\n[list source [file join $dir cts.tcl]]\n[list source [file join $dir synthesis.tcl]]
diff --git a/scripts/utils/utils.tcl b/scripts/utils/utils.tcl
index bf61b09..6e169fe 100644
--- a/scripts/utils/utils.tcl
+++ b/scripts/utils/utils.tcl
@@ -82,7 +82,11 @@
 
 # a minimal try catch block
 proc try_catch {args} {
-	puts "Executing \"$args\"\n"
+	set cmd_log_file [open $::env(RUN_DIR)/cmds.log a+]
+	set timestamp [clock format [clock seconds]]
+	puts $cmd_log_file "$timestamp - Executing \"$args\"\n"
+	close $cmd_log_file
+
         if { [catch {eval exec $args} error_msg] } { 
 		set tool [string range $args 0 [string first " " $args]]
                 set print_error_msg "\[ERROR\]: during executing: \"$args\"\n"
diff --git a/succeed.tcl b/succeed.tcl
new file mode 100644
index 0000000..1504a69
--- /dev/null
+++ b/succeed.tcl
@@ -0,0 +1,3 @@
+verilog2def -verilog /home/ahmedg/openlane_dev/designs/spm/runs/abs_fp/results/synthesis/spm.synthesis.v -lef /home/ahmedg/openlane_dev/designs/spm/runs/abs_fp/tmp//merged.lef -liberty /home/ahmedg/openlane_dev/designs/spm/runs/abs_fp/tmp//trimmed.lib -top_module spm -site unitehd -tracks /home/ahmedg/openlane_dev/pdks//ef-skywater-s8/EFS8A//libs.tech/openlane/common_tracks.info -units 1000 -utilization 50 -aspect_ratio 1 -core_space 3.36 -def /home/ahmedg/openlane_dev/designs/spm/runs/abs_fp/tmp/floorplan/verilog2def_broken.def -verbose 
+
+
