diff --git a/README.md b/README.md
index fc0840cbd7d38ae44eed34d98c67a72c5eb7daa0..bc493b0cd81b037e44936914d12849481b31f303 100644
--- a/README.md
+++ b/README.md
@@ -127,7 +127,7 @@ The syllabus is organized in four main segments of five lectures each.
 * (04/02/2025) Rust: Generics and traits (JHJ) ([slides](slides/jhjourdan-02.pdf)).
   + Hands-on: binary search trees in Rust ([exercises](tdtp/jhjourdan1.pdf), [solution](tdtp/jhjourdan1_solution.rs)).
 * (11/02/2025) Practicing Rust, concurrency (JHJ) ([slides](slides/jhjourdan-03.pdf))..
-  + Hands-on: ([exercises](tdtp/jhjourdan2.pdf), [solution](tdtp/jhjourdan2_solution.rs)).
+  + Hands-on: ([exercises](tdtp/jhjourdan2.pdf), [template for union-find](tdtp/jhjourdan-td2-uninonfind.tar.gz), [solution](tdtp/jhjourdan2_solution.rs)).
 * (18/02/2025) Metatheory of Rust's type system (JHJ) ([slides](slides/jhjourdan-04.pdf)).
 * (25/02/2025) Exercise session (GS).
 * (04/03/2025) *break*
diff --git a/tdtp/jhjourdan-td2-unionfind.tar.gz b/tdtp/jhjourdan-td2-unionfind.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..f323d86dab7d95f0b756b26a7abdbf3ec49efe03
Binary files /dev/null and b/tdtp/jhjourdan-td2-unionfind.tar.gz differ