diff --git a/presentation/intro.md b/presentation/intro.md
index b45ed01f54bd4355b7e3331202dd8046b949c0e7..be2d85206c39568214014ea4cee2590c2ced6658 100644
--- a/presentation/intro.md
+++ b/presentation/intro.md
@@ -127,18 +127,23 @@ Quel est le problème dans ce code?
 
 # Sûreté mémoire en Rust
 
-## Ownership (1/2)
+- En Rust, la sûreté en mémoire est garantie **à la compilation**.
+- Il existe trois façons de posséder des données.
+
+# Owned data
+
+## Owner
 
 - Quand on est **propriétaire** des données, on peut faire ce qu'on veut avec:
 	1. Les lire.
 	2. Les modifier.
 	3. Les donner à quelqu'un d'autre.
 
-## Ownership (2/2)
+## Owner (2/2)
 
 ![Comme avec un cahier. Source [Wikipedia](https://upload.wikimedia.org/wikipedia/commons/9/9f/Se%C5%A1ity.JPG)](https://upload.wikimedia.org/wikipedia/commons/9/9f/Se%C5%A1ity.JPG){#fig:mem_vec_str width=50%}
 
-## Ownership en pratique (1/3)
+## En pratique (1/3)
 
 <pre><code data-trim="hljs rust" class="lang-rust">
     fn do_something(_notebook: Vec<&str>) { // _notebook prend l'ownership
@@ -161,7 +166,7 @@ fn main() {
 
 Le transfert de l'ownership est complètement décidé à la **compilation**.
 
-## Ownership en pratique (2/3)
+## En pratique (2/3)
 
 Ce qui se passe en mémoire:
 
@@ -173,7 +178,7 @@ Ce qui se passe en mémoire:
 
 **`notebook` est détruit à la fin de `do_something` et ne peut plus être réutilisé**
 
-## Ownership en pratique (3/3)
+## En pratique (3/3)
 
 En C++ une sytaxe similaire a un effet complètement différent
 
@@ -195,7 +200,9 @@ void main() {
 }
 ```
 
-## Borrowing
+# Shared reference
+
+## Emprunt immutable (1/2)
 
 Mais comment lire (ou modifier) le notebook et le réutiliser ensuite?
 
@@ -220,7 +227,7 @@ fn main() {
 
 "Un peu" verbeux de faire comme cela.
 
-## Borrowing
+## Emprunt immutable (2/2)
 
 Solution: le propriétaire **prête** ses données.
 
@@ -244,7 +251,7 @@ fn main() {
 }
 </code></pre>
 
-## Borrowing en pratique (2/3)
+## En pratique (1/2)
 
 Ce qui se passe en mémoire:
 
@@ -252,7 +259,7 @@ Ce qui se passe en mémoire:
 
 ### Attention: un emprunt est **immutable** par définition!
 
-## Borrowing en pratique (3/3)
+## En pratique (2/2)
 
 ### Que se passe-t-il 
 
@@ -274,7 +281,7 @@ Ce qui se passe en mémoire:
 ::: {.column width="50%"}
 <pre><code data-trim="hljs rust" class="lang-rust">
 fn main() {
-    let mut v = Vec::new(); // par défaut notebook est immutable
+    let mut v = Vec::new();
 	v.push("Test.");
 
 	let elem = &v[0]; // référence
@@ -282,9 +289,42 @@ fn main() {
 }
 </code></pre>
 :::
-:::::::::::::: 
+::::::::::::::
+
+# Mutable reference
+
+## Emprunt mutable
+
+Le propriétaire **prête** ses données mais l'emprunteur peut les modifier.
+
+1. On crée une **mutable** référence vers les données (on peut les modifier).
+2. On peut donner la référence.
+3. Quand la référence sort de la portée elle est détruite, mais comme elle possède pas les données l'ownership est rendu aussi.
+
+. . .
+
+<pre><code data-trim="hljs rust" class="lang-rust">
+	fn mut_borrow(notebook: &mut Vec<&str>) { // _notebook prend l'ownership de la référence vers un Vec
+		notebook.push("On peut modifier les données");
+    // on peut lire les données contenues dans notebook et les modifier
+} // la référence est détruite, les données sont rendues à notebook
+
+fn main() {
+    let mut notebook = Vec::new(); // par défaut notebook est immutable
+
+    notebook.push("Il fait beau.");
+    notebook.push("Les oiseaux chantent.");
+
+    mut_borrow(&mut notebook); // on crée une référence et on la passe à borrow
+    mut_borrow(&mut notebook); // on peut réutiliser notebook
+}
+</code></pre>
+
+## En pratique (1/2)
 
+![](figs/mem_vec_mut_borrowing.svg){#fig:mem_vec_borrowing width=70%}
 
+La référence est **vérouillée** personne d'autre ne peut modifier ou lire les données.
 
 <!-- - `vector` et `string` sont alignés en mémoire.
 - références "light".