diff --git a/doc/example.typ b/doc/example.typ
index 0ff4bac..7e7af59 100644
--- a/doc/example.typ
+++ b/doc/example.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../src/circuit.typ": circuit
 #import "../src/util.typ"
 
diff --git a/gallery.bash b/gallery.bash
deleted file mode 100644
index f87679c..0000000
--- a/gallery.bash
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-PDFS=false
-
-while getopts "p" flag
-do
-    case "${flag}" in
-        p) PDFS=true;;
-    esac
-done
-
-echo "Generating gallery images"
-
-set -- ./gallery/*.typ
-cnt="$#"
-i=1
-for f
-do
-    f2="${f/typ/png}"
-    echo "($i/$cnt) $f -> $f2"
-    typst c --root ./ "$f" "$f2"
-    i=$((i+1))
-done
-
-if [ "$PDFS" = true ]
-then
-    echo
-    echo "Generating gallery PDFs"
-
-    set -- ./gallery/*.typ
-    cnt="$#"
-    i=1
-    for f
-    do
-        f2="${f/typ/pdf}"
-        echo "($i/$cnt) $f -> $f2"
-        typst c --root ./ "$f" "$f2"
-        i=$((i+1))
-    done
-fi
\ No newline at end of file
diff --git a/gallery/platypus.png b/gallery/platypus.png
index 9338a23..a52e375 100644
Binary files a/gallery/platypus.png and b/gallery/platypus.png differ
diff --git a/gallery/test.png b/gallery/test.png
index e090778..b6e812c 100644
Binary files a/gallery/test.png and b/gallery/test.png differ
diff --git a/gallery/test2.png b/gallery/test2.png
index e090778..b6e812c 100644
Binary files a/gallery/test2.png and b/gallery/test2.png differ
diff --git a/gallery/test3.png b/gallery/test3.png
index bd56665..2ed46d0 100644
Binary files a/gallery/test3.png and b/gallery/test3.png differ
diff --git a/gallery/test3.typ b/gallery/test3.typ
index a0d7f88..89db692 100644
--- a/gallery/test3.typ
+++ b/gallery/test3.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../src/lib.typ": circuit, element, util, wire
 
 #set page(width: auto, height: auto, margin: .5cm)
diff --git a/gallery/test4.png b/gallery/test4.png
index 258702b..e7666f6 100644
Binary files a/gallery/test4.png and b/gallery/test4.png differ
diff --git a/gallery/test4.typ b/gallery/test4.typ
index 0233d6f..08f8d00 100644
--- a/gallery/test4.typ
+++ b/gallery/test4.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../src/lib.typ": *
 
 #set page(width: auto, height: auto, margin: .5cm)
diff --git a/gallery/test5.png b/gallery/test5.png
index 92af622..b70bb2c 100644
Binary files a/gallery/test5.png and b/gallery/test5.png differ
diff --git a/gallery/test5.typ b/gallery/test5.typ
index 5b8ce62..ebf6e77 100644
--- a/gallery/test5.typ
+++ b/gallery/test5.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../src/lib.typ": *
 
 #set page(width: auto, height: auto, margin: .5cm)
diff --git a/gallery/test6.png b/gallery/test6.png
index ad23796..be04367 100644
Binary files a/gallery/test6.png and b/gallery/test6.png differ
diff --git a/gallery/test6.typ b/gallery/test6.typ
index 3fb4bbe..ba76c94 100644
--- a/gallery/test6.typ
+++ b/gallery/test6.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw, vector
+#import "@preview/cetz:0.3.2": draw, vector
 #import "../src/lib.typ": *
 
 #set page(width: auto, height: auto, margin: .5cm)
diff --git a/justfile b/justfile
new file mode 100644
index 0000000..978fd41
--- /dev/null
+++ b/justfile
@@ -0,0 +1,11 @@
+# Local Variables:
+# mode: makefile
+# End:
+gallery_dir := "./gallery"
+set shell := ["bash", "-uc"]
+
+manual:
+  typst c manual.typ manual.pdf
+
+gallery:
+  for f in "{{gallery_dir}}"/*.typ; do typst c --root . "$f" "${f%typ}png"; done
diff --git a/manual.pdf b/manual.pdf
index 2750ae9..b0c4328 100644
Binary files a/manual.pdf and b/manual.pdf differ
diff --git a/manual.typ b/manual.typ
index 7d1ef53..a23517e 100644
--- a/manual.typ
+++ b/manual.typ
@@ -1,5 +1,5 @@
-#import "@preview/tidy:0.3.0"
-#import "@preview/cetz:0.2.2": draw, canvas
+#import "@preview/tidy:0.4.1"
+#import "@preview/cetz:0.3.2": draw, canvas
 #import "src/lib.typ"
 #import "doc/examples.typ"
 #import "src/circuit.typ": circuit
@@ -12,7 +12,7 @@
   numbering("1.1", ..num)
 })
 #{
-  outline(indent: true, depth: 3)
+  outline(indent: auto, depth: 3)
 }
 
 #show link: set text(blue)
@@ -47,7 +47,7 @@
 
 #set page(numbering: "1/1", header: align(right)[circuiteria #sym.dash.em v#lib.version])
 #set page(
-  header: locate(loc => {
+  header: context {
     let txt = [circuiteria #sym.dash.em v#lib.version]
     let cnt = counter(heading)
     let cnt-val = cnt.get()
@@ -65,8 +65,8 @@
         #rect(width: 100%, height: .5em, radius: .25em, stroke: none, fill: util.colors.values().at(i))
       ]
     )
-  }),
-  footer: locate(loc => {
+  },
+  footer: context {
     let cnt = counter(heading)
     let cnt-val = cnt.get()
     if cnt-val.len() < 2 { return }
@@ -80,12 +80,12 @@
       ],
       counter(page).display("1/1", both: true)
     )
-  })
+  }
 )
 
 #let doc-ref(target, full: false, var: false) = {
   let (module, func) = target.split(".")
-  let label-name = module + func
+  let label-name = module + "-" + func
   let display-name = func
   if full {
     display-name = target
@@ -94,7 +94,7 @@
     label-name += "()"
     display-name += "()"
   }
-  link(label(label-name))[#display-name]
+  link(label(label-name), raw(display-name))
 }
 
 = Introduction
@@ -117,6 +117,7 @@ Simply import #link("src/lib.typ") and call the `circuit` function:
 #let circuit-docs = tidy.parse-module(
   read("src/circuit.typ"),
   name: "circuit",
+  old-syntax: true,
   require-all-parameters: true
 )
 #tidy.show-module(circuit-docs)
@@ -126,6 +127,7 @@ Simply import #link("src/lib.typ") and call the `circuit` function:
 #let util-docs = tidy.parse-module(
   read("src/util.typ"),
   name: "util",
+  old-syntax: true,
   require-all-parameters: true,
   scope: (
     util: util,
@@ -140,6 +142,7 @@ Simply import #link("src/lib.typ") and call the `circuit` function:
 #let wire-docs = tidy.parse-module(
   read("src/wire.typ"),
   name: "wire",
+  old-syntax: true,
   require-all-parameters: true,
   scope: (
     wire: wire,
@@ -161,6 +164,7 @@ Simply import #link("src/lib.typ") and call the `circuit` function:
   read("src/elements/multiplexer.typ") + "\n" +
   read("src/elements/group.typ"),
   name: "element",
+  old-syntax: true,
   scope: (
     element: element,
     circuit: circuit,
@@ -183,6 +187,7 @@ Simply import #link("src/lib.typ") and call the `circuit` function:
   read("src/elements/logic/or.typ") + "\n" +
   read("src/elements/logic/xor.typ"),
   name: "gates",
+  old-syntax: true,
   scope: (
     element: element,
     circuit: circuit,
diff --git a/src/circuit.typ b/src/circuit.typ
index 4ae8331..7a701c7 100644
--- a/src/circuit.typ
+++ b/src/circuit.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": canvas
+#import "@preview/cetz:0.3.2": canvas
 #import "@preview/tidy:0.3.0"
 
 /// Draws a block circuit diagram
diff --git a/src/elements/alu.typ b/src/elements/alu.typ
index 0489cda..9a8cb82 100644
--- a/src/elements/alu.typ
+++ b/src/elements/alu.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "element.typ"
 #import "ports.typ": add-port
 
diff --git a/src/elements/block.typ b/src/elements/block.typ
index 90f81d4..84623fe 100644
--- a/src/elements/block.typ
+++ b/src/elements/block.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "element.typ"
 
 #let draw-shape(id, tl, tr, br, bl, fill, stroke) = {
diff --git a/src/elements/element.typ b/src/elements/element.typ
index 7690410..635fc0b 100644
--- a/src/elements/element.typ
+++ b/src/elements/element.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw, coordinate
+#import "@preview/cetz:0.3.2": draw, coordinate
 #import "ports.typ": add-ports, add-port
 #import "../util.typ"
 
diff --git a/src/elements/extender.typ b/src/elements/extender.typ
index ee60ae0..a1b99e0 100644
--- a/src/elements/extender.typ
+++ b/src/elements/extender.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "element.typ"
 #import "ports.typ": add-port
 
diff --git a/src/elements/group.typ b/src/elements/group.typ
index 5a12f3f..1f3e41c 100644
--- a/src/elements/group.typ
+++ b/src/elements/group.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw, coordinate
+#import "@preview/cetz:0.3.2": draw, coordinate
 #import "../util.typ"
 
 /// Draws a group of elements
diff --git a/src/elements/logic/and.typ b/src/elements/logic/and.typ
index 2dbee0c..f32eb21 100644
--- a/src/elements/logic/and.typ
+++ b/src/elements/logic/and.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "gate.typ"
 
 #let draw-shape(id, tl, tr, br, bl, fill, stroke) = {
diff --git a/src/elements/logic/buf.typ b/src/elements/logic/buf.typ
index ab77264..3db75a9 100644
--- a/src/elements/logic/buf.typ
+++ b/src/elements/logic/buf.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "gate.typ"
 
 #let draw-shape(id, tl, tr, br, bl, fill, stroke) = {
diff --git a/src/elements/logic/gate.typ b/src/elements/logic/gate.typ
index ebf6115..7350a70 100644
--- a/src/elements/logic/gate.typ
+++ b/src/elements/logic/gate.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw, coordinate
+#import "@preview/cetz:0.3.2": draw, coordinate
 #import "../ports.typ": add-ports, add-port
 #import "../element.typ"
 
diff --git a/src/elements/logic/or.typ b/src/elements/logic/or.typ
index 67bb946..dca0f9b 100644
--- a/src/elements/logic/or.typ
+++ b/src/elements/logic/or.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "gate.typ"
 
 #let draw-shape(id, tl, tr, br, bl, fill, stroke) = {
diff --git a/src/elements/logic/xor.typ b/src/elements/logic/xor.typ
index 42718f6..3f226a8 100644
--- a/src/elements/logic/xor.typ
+++ b/src/elements/logic/xor.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "gate.typ"
 
 #let space = 10%
diff --git a/src/elements/multiplexer.typ b/src/elements/multiplexer.typ
index 8df5cee..d7c29eb 100644
--- a/src/elements/multiplexer.typ
+++ b/src/elements/multiplexer.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../util.typ"
 #import "element.typ"
 #import "ports.typ": add-port
diff --git a/src/elements/ports.typ b/src/elements/ports.typ
index 92d667a..951fa4a 100644
--- a/src/elements/ports.typ
+++ b/src/elements/ports.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw
+#import "@preview/cetz:0.3.2": draw
 #import "../util.typ": rotate-anchor
 
 #let add-port(
diff --git a/src/lib.typ b/src/lib.typ
index a5177a3..7f27208 100644
--- a/src/lib.typ
+++ b/src/lib.typ
@@ -1,4 +1,4 @@
-#let version = version(0, 1, 0)
+#let version = version(0, 2, 0)
 
 #import "circuit.typ": circuit
 #import "element.typ"
diff --git a/src/wire.typ b/src/wire.typ
index 07a3ac1..8300a2c 100644
--- a/src/wire.typ
+++ b/src/wire.typ
@@ -1,4 +1,4 @@
-#import "@preview/cetz:0.2.2": draw, coordinate
+#import "@preview/cetz:0.3.2": draw, coordinate
 #import "util.typ": opposite-anchor
 
 /// List of valid wire styles
diff --git a/typst.toml b/typst.toml
index c1e80c5..39cff5b 100644
--- a/typst.toml
+++ b/typst.toml
@@ -1,7 +1,7 @@
 [package]
 name = "circuiteria"
-version = "0.1.0"
-compiler = "0.11.0"
+version = "0.2.0"
+compiler = "0.13.0"
 repository = "https://git.kb28.ch/HEL/circuiteria"
 entrypoint = "src/lib.typ"
 authors = [
@@ -11,4 +11,4 @@ categories = [ "visualization" ]
 license = "Apache-2.0"
 description = "Drawing block circuits with Typst made easy, using CeTZ"
 keywords = [ "circuit", "block", "draw" ]
-exclude = [ "gallery", "gallery.bash", "doc" ]
\ No newline at end of file
+exclude = [ "gallery", "justfile", "doc" ]
\ No newline at end of file