diff --git a/doitcode/bandgap.py b/doitcode/bandgap.py
index 3176dfc..fcd9d95 100644
--- a/doitcode/bandgap.py
+++ b/doitcode/bandgap.py
@@ -127,7 +127,7 @@
         m1 = cast(_prm.MetalWire, _prims.m1)
         assert m1.pin is not None
         m1pin = m1.pin[0]
-        via1 = cast(_prm.Via, _prims.via)
+        via = cast(_prm.Via, _prims.via)
         m2 = cast(_prm.MetalWire, _prims.m2)
         assert m2.pin is not None
         bnd = cast(_prm.Auxiliary, _prims.prBoundary)
@@ -390,8 +390,8 @@
 
         lay = lay_matrix[1][1] # pnp1
         m1pinbb = lay.bounds(mask=m1pin.mask, net=nets.vq1)
-        via1_lay = layouter.add_wire(net=nets.vq1, wire=via1, bottom_shape=m1pinbb)
-        via1vq1pnp1_m2bb = via1_lay.bounds(mask=m2.mask)
+        via_lay = layouter.add_wire(net=nets.vq1, wire=via, bottom_shape=m1pinbb)
+        viavq1pnp1_m2bb = via_lay.bounds(mask=m2.mask)
 
         _chvq1n1_lay = layouter.wire_layout(
             net=net, wire=licon, bottom=difftap, bottom_implant=nsdm,
@@ -402,8 +402,8 @@
             net=net, wire=mcon, bottom_height=n1_actbb.height,
             top_height=n1_actbb.height,
         )
-        _via1vq1m1_lay = layouter.wire_layout(
-            net=net, wire=via1, bottom_height=n1_actbb.height,
+        _viavq1m1_lay = layouter.wire_layout(
+            net=net, wire=via, bottom_height=n1_actbb.height,
             top_height=n1_actbb.height,
         )
 
@@ -411,15 +411,15 @@
         y = n1_actbb.bottom - _chvq1n1_actbb.bottom
         layouter.place(_chvq1n1_lay, x=x, y=y)
         layouter.place(_mconvq1m1_lay, x=x, y=y)
-        via1vq1n1_lay = layouter.place(_via1vq1m1_lay, x=x, y=y)
-        via1vq1n1_m2bb = via1vq1n1_lay.bounds(mask=m2.mask)
+        viavq1n1_lay = layouter.place(_viavq1m1_lay, x=x, y=y)
+        viavq1n1_m2bb = viavq1n1_lay.bounds(mask=m2.mask)
 
         shape = _geo.Rect.from_rect(
-            rect=via1vq1n1_m2bb, right=via1vq1pnp1_m2bb.right
+            rect=viavq1n1_m2bb, right=viavq1pnp1_m2bb.right
         )
         layouter.add_wire(net=net, wire=m2, shape=shape)
         shape = _geo.Rect.from_rect(
-            rect=via1vq1pnp1_m2bb, top=via1vq1n1_m2bb.top
+            rect=viavq1pnp1_m2bb, top=viavq1n1_m2bb.top
         )
         layouter.add_wire(net=net, wire=m2, shape=shape)
 
@@ -509,13 +509,13 @@
         shape2 = _geo.Rect.from_rect(rect=lay3_m1pinbb, bottom=dy_pnp)
         layouter.add_wire(net=net, wire=m1, shape=shape2)
 
-        via1vq3_lay1 = layouter.add_wire(
-            net=net, wire=via1, x=shape2.center.x, y=dy_pnp,
+        viavq3_lay1 = layouter.add_wire(
+            net=net, wire=via, x=shape2.center.x, y=dy_pnp,
             bottom_width=shape2.width,
         )
-        via1vq3_m2bb1 = via1vq3_lay1.bounds(mask=m2.mask)
+        viavq3_m2bb1 = viavq3_lay1.bounds(mask=m2.mask)
         layouter.add_wire(
-            net=net, wire=via1, x=shape1.center.x, y=dy_pnp,
+            net=net, wire=via, x=shape1.center.x, y=dy_pnp,
             bottom_width=shape1.width,
         )
 
@@ -525,19 +525,19 @@
         y = vq3res2_libb.bottom - _mconvq3res2_libb.bottom
         mconvq3res2_lay = layouter.place(_mconvq3res2_lay, x=x, y=y)
         mconvq3res2_m1bb = mconvq3res2_lay.bounds(mask=m1.mask)
-        via1vq3res2_lay = layouter.add_wire(
-            net=net, wire=via1, rows=2, x=x, y=dy_pnp,
+        viavq3res2_lay = layouter.add_wire(
+            net=net, wire=via, rows=2, x=x, y=dy_pnp,
         )
-        via1vq3res2_m1bb = via1vq3res2_lay.bounds(mask=m1.mask)
-        via1vq3res2_m2bb = via1vq3res2_lay.bounds(mask=m2.mask)
+        viavq3res2_m1bb = viavq3res2_lay.bounds(mask=m1.mask)
+        viavq3res2_m2bb = viavq3res2_lay.bounds(mask=m2.mask)
 
         shape = _geo.Rect.from_rect(
-            rect=via1vq3res2_m1bb, bottom=mconvq3res2_m1bb.bottom,
+            rect=viavq3res2_m1bb, bottom=mconvq3res2_m1bb.bottom,
         )
         layouter.add_wire(net=net, wire=m1, shape=shape)
 
         shape = _geo.Rect.from_rect(
-            rect=via1vq3res2_m2bb, left=via1vq3_m2bb1.left,
+            rect=viavq3res2_m2bb, left=viavq3_m2bb1.left,
         )
         layouter.add_wire(net=net, wire=m2, shape=shape)
 
@@ -649,7 +649,7 @@
         m1 = cast(_prm.MetalWire, _prims.m1)
         assert m1.pin is not None
         m1pin = m1.pin[0]
-        via1 = cast(_prm.Via, _prims.via)
+        via = cast(_prm.Via, _prims.via)
         m2 = cast(_prm.MetalWire, _prims.m2)
         via2 = cast(_prm.Via, _prims.via2)
         m3 = cast(_prm.MetalWire, _prims.m3)
@@ -701,7 +701,7 @@
             net=net, wire=mcon, bottom_shape=bgvss_lipinbb, top_shape=bgvss_lipinbb,
         )
         layouter.add_wire(
-            net=net, wire=via1, bottom_shape=bgvss_lipinbb, top_shape=bgvss_lipinbb,
+            net=net, wire=via, bottom_shape=bgvss_lipinbb, top_shape=bgvss_lipinbb,
         )
         lay = layouter.add_wire(
             net=net, wire=via2, bottom_shape=bgvss_lipinbb, top_shape=bgvss_lipinbb,
@@ -717,7 +717,7 @@
         net = vdd
 
         layouter.add_wire(
-            net=net, wire=via1, bottom_shape=bgvdd_m1pinbb, top_shape=bgvdd_m1pinbb,
+            net=net, wire=via, bottom_shape=bgvdd_m1pinbb, top_shape=bgvdd_m1pinbb,
         )
         lay = layouter.add_wire(
             net=net, wire=via2, bottom_shape=bgvdd_m1pinbb, top_shape=bgvdd_m1pinbb,
@@ -736,7 +736,7 @@
             net=net, wire=mcon, bottom_shape=bgvref_lipinbb, top_shape=bgvref_lipinbb,
         )
         layouter.add_wire(
-            net=net, wire=via1, bottom_shape=bgvref_lipinbb, top_shape=bgvref_lipinbb,
+            net=net, wire=via, bottom_shape=bgvref_lipinbb, top_shape=bgvref_lipinbb,
         )
         lay = layouter.add_wire(
             net=net, wire=via2, bottom_shape=bgvref_lipinbb, top_shape=bgvref_lipinbb,
