diff --git a/presentation/intro.md b/presentation/intro.md
index 261d886123f6a9791ea16832945abfe42dd7ca7a..8467769878b4c03210da82aae17767470c5ce6c4 100644
--- a/presentation/intro.md
+++ b/presentation/intro.md
@@ -538,7 +538,8 @@ fn main() {
     });
 
     println!("Recieved {:?}", rx.recv()); // recv FIFO
-    println!("Recieved {:?}", rx.recv());
+    println!("Recieved {:?}", rx.recv()); 
+    // when hdl/hdl2 are freed we know the channel is "closed". nobody can send new messages
 }
 </code></pre>
 
@@ -548,6 +549,13 @@ Ce qui se passe en mémoire
 
 ![](figs/mem_channel.svg){#fig:mem_channel width=45%}
 
+# External crates
+
+## `crates.io`
+
+- These are the basic concurrency primitives in the Rust std.
+- For more rely on crates: `rayon` for example.
+
 # And many more
 
 - Error handling: `Option`, `Result`.