diff --git a/slides.tex b/slides.tex
index 0e7bd8efe2fb13682e6c16e80984beec262dd5d1..aad9852b03e2784e006ad3134f5d55e805ced0d2 100644
--- a/slides.tex
+++ b/slides.tex
@@ -165,32 +165,6 @@ The Problem:
   % \center\Large\sc The Nix Ecosystem. {\url{https://nixos.org}}
 \end{frame}
 
-
-% \begin{frame}{Nix - Programming Language}
-%
-%   What?
-%   \begin{itemize}
-%     \item Is a Domain Specific Language (DSL)
-%     \item Functional, Turing complete language.
-%     \item Dynamically typed. int, bool, path, string, set, list, lambda.
-%     \item Large built-in and standard lib. \texttt{stdenv, fetchTarball, fromJson, fromGitHub, assert, test..}
-%   \end{itemize}
-% \end{frame}
-%
-% \begin{frame}{Nix - Language}
-%   \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-%     {Nix - The Expression Language }
-%   \end{tcolorbox}
-%   Why?
-%   \begin{itemize}
-%     \item Packaging is complex.
-%     \item Abstraction layers.
-%     \item Better reusability, factorization.
-%     \item (Readable and Maintainable)
-%   \end{itemize}
-% \end{frame}
-
-
 \subsection{Nix Concepts}
 
 \begin{frame}{Main Concepts}
@@ -207,7 +181,6 @@ The Problem:
     \item No side effects
     \begin{itemize}
       \item Undeclared dependencies $\rightarrow$ fail
-      % \item Undeclared dependencies $\rightarrow$ fail
     \end{itemize}
     \item Packages are written in Nix
   \end{itemize}
@@ -215,6 +188,7 @@ The Problem:
 \end{frame}
 
 \subsection{Packages}
+
 \begin{frame}[fragile]{Package Definition Example}
   % It is a Nix attribute set describing how to build a package.
   \vspace{-1em}
@@ -233,6 +207,8 @@ stdenv.mkDerivation {
 
 \end{frame}
 
+\subsection{Store}
+
 \begin{frame}[fragile]{Store}
 
 \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
@@ -241,28 +217,24 @@ stdenv.mkDerivation {
 
   \vspace{1em}
 
-  Isolated packages \\
-  \emph{Hash(inputs, source code)-packagename}
+  \begin{itemize}
+    \item Isolated packages \\
+    \item \emph{Hash(inputs, source code)-packagename}
+    \item Package names known before build $\rightarrow$ binary cache
+  \end{itemize}
 
-%  \begin{lstlisting}[basicstyle=\small]
-%/nix/store/hash-packagename/..
-%                           /bin/package
-%                           /lib/package.so
-%                           /share/
-%                           .
-%  \end{lstlisting}
   \center
   \includegraphics[width=0.7\textwidth]{./figures/example_tree.png}
 
 \end{frame}
 
+
 \begin{frame}[fragile]{Store}
 \begin{columns}
 \begin{column}{0.5\textwidth}
 
-  \begin{}
 \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-  Package are tree
+  Packages depends on other packages
 \end{tcolorbox}
 
 \end{column}
@@ -270,240 +242,80 @@ stdenv.mkDerivation {
     \begin{center}
     \vspace{-4em}
   \includegraphics[scale=0.6]{./figures/store-zoom.png}
-     \end{center}
+    \end{center}
 \end{column}
 \end{columns}
-
-\end{frame}
-
-\begin{frame}[fragile]{Store}
-
-\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-  The store can be used as a binary cache.
-\end{tcolorbox}
-
-  \vspace{1em}
-  Thanks to the name of a package.
-
-  \begin{lstlisting}[basicstyle=\small]
-/nix/store/hash-packagename
-  \end{lstlisting}
-
- \vspace{1em}
-  Missing dependencies can be identified and downloaded from a remote store.
-
-\end{frame}
-
-
-
-\begin{frame}[fragile]{Nix Build: build packages}
-
-\vspace{1em}
-
-\includegraphics[width=1\textwidth]{./figures/nix-build.pdf}
-
-%The result of the build action is automatically placed into the nix store.
-%
-%  \begin{lstlisting}[basicstyle=\small]
-%                  /nix/store/
-%  \end{lstlisting}
-
 \end{frame}
 
+\subsection{NixPkgs}
 
 \begin{frame}[fragile]{Nixpkgs}
-
-  How and where can we get a derivation?
-
-  \pause
-  \vspace{1em}
-
-  Derivations are source code:
+  \begin{itemize}
+    \item Packages are source code
+    \item Decentralized repository
+  \end{itemize}
 
   \vspace{1em}
+  Official Nix Git Repository:
   \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
     \center
     https://github.com/NixOS/nixpkgs \\
     \textit{A.K.A} \textbf{NixPkgs}
   \end{tcolorbox}
 
-  \vspace{1em}
-
-  NixPkgs contains the derivations of all application (and libraries) \emph{officially} available with Nix.
-\end{frame}
-
-
-\begin{frame}[fragile]{Channels}
-
-  \only<1>{
-
-  \vspace{1em}
-\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-  \center
-  A \textbf{channel} is link to  branch of NixPkgs tested with continuous integration.
-\end{tcolorbox}
-
-  \vspace{1em}
-  Channels are useful to downloaded latest packaged version of a software. \\
-
-  \vspace{1em}
-
   \begin{itemize}
-    \item nixpkgs-unstable (feeling lucky?)
-    \item nixpkgs-19.03 (current stable)
-    \item nixpkgs-18.09 (outdated)
+    \item Maintained by the community
+    \item +10K packages
   \end{itemize}
 
-  \vspace{1em}
-  (Channels benefit from binary cache.)
-
-  }
-  \only<2>{
-
-  \begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black]
-    \center
-    Channels are not fully reproducible, as they are subject to updates.
-  \end{tcolorbox}
-
-  \vspace{1em}
-    As experimenters, we will use another mechanism called pinning.
-  }
-
 \end{frame}
 
-% \begin{frame}{}
-%   A derivation is a build action written in Nix. \\
-%   \vspace{1em}
-%   Used to build package. \\
-%   \vspace{1em}
-%   The resulting package is stocked in the store, \\
-%   identified with a unique path. \\
-%   \vspace{1em}
-%   In which it can refer to other packages.
-%   \vspace{1em}
-% \end{frame}
-
-\begin{frame}{Key points}
+\subsection{Nix tools}
 
-  \begin{enumerate}
-  \item Applies functional paradigm to package management system.
-  \item Packages are called derivations, written in Nix lang.
-  \item Such derivation defines a building process.
-  \item A built derivation is located to the nix store into a dedicated directory.
-  \item The directory name is generated from a hash of its inputs and its nix file.
-  \item Packages can have reference on other packages from the store.
-  \item The list of existing packages are into NixPkgs repository.
-  \end{enumerate}
-
-\end{frame}
-
-\begin{frame}{Nix - Command line interface}
-  How do we use Nix ?
-  \vspace{1em}
-  \begin{itemize}
-    \item \textit{nix-build}: build a derivation (that will be placed to the nix store),
-    \item \textit{nix-env}: install a package (in your current environment)
-      \note{Speak about profiles?},
-    \item \textit{nix search}: search for available packages.
-    \item \textit{nix-shell}: start a shell in the build environment of a derivation,
-  \end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]{Nix shell}
-\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-  \center
-  Virtualenv on steroids.
-\end{tcolorbox}
-
-\vspace{1em}
-Start an interactive session within the build environment of a derivation.
+\begin{frame}[fragile]{Nix Build: build packages}
 
 \vspace{1em}
-Enables to describe environment, in which we can start a shell.
 
-\vspace{-1em}
-  \begin{lstlisting}[language=Nix,basicstyle=\small]
-{
-  pkgs ? import (fetchTarball
-    https://github.com/archive/e860b629bc0d1f9b.tar.gz)
-  {}
-}:
-pkgs.mkShell rec {
-  buildInputs = [ valgrind gdb cmake ];
-}
-  \end{lstlisting}
+\includegraphics[width=1\textwidth]{./figures/nix-build.pdf}
 
 \end{frame}
 
-\begin{frame}[fragile]{Why it is reproducible ?}
-  Writting a package for an application requires to state down every dependencies. \\
-
-  \vspace{1em}
-
-  The build process of the application is also incorporated within the derivation.
-  \note{The second point makes it easy to rebuild your application.}
-
+\begin{frame}[fragile]{Nix shell: Virtualenv on steroids}
+  \includegraphics[width=1\textwidth]{./figures/nix-shell.pdf}
 \end{frame}
 
 \begin{frame}[fragile]{Why it is reproducible ?}
-  \vspace{1em}
 
-  The source of your application can be fixed:
-  \begin{lstlisting}[language=Nix,basicstyle=\small]
+  \begin{itemize}
+  \item Package = traceable dependencies
+  \item Automated package build
+  \item fixed application source
+ \begin{lstlisting}[language=Nix,basicstyle=\small]
 src = fetgit {
   url = "https://gitlab.com/me/chord.tar.gz";
   sha256 = "1h2jgq5pspyiskffq777nhi5rf0y8h...";
 };
   \end{lstlisting}
-
-  \vspace{1em}
-  The source of the Nixpkgs repository can be pinned.
+  \item pinned Nixpkgs
   \begin{lstlisting}[language=Nix,basicstyle=\small]
 {
-  pkgs ? import ( fetchTarball
-    "https://github.com/achive/e860b629bc0d1f9b.tar.gz" )
-  )
+  pkgs ? import (fetchTarball
+    "https://github.com/archive/e6b201f9b.tar.gz"
+    )
 }:
   \end{lstlisting}
-
-\end{frame}
-
-\begin{frame}[fragile]
-
-  Pros:
-  \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
-  \begin{itemize}
-    \item Defining and sharing complex environments easily.
-    \item Environments are reconstructible .
-    \item Writing derivations requires to state every dependencies.
   \end{itemize}
-  \end{tcolorbox}
-
-  \vspace{1em}
+\end{frame}
 
-  Cons:
-  \begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black]
+\subsection{Limitations}
+\begin{frame}[fragile]{Limitations}
   \begin{itemize}
-    \item The entry cost is high.
-    \item It is contaminating (heavily depends on the nix store).
+    \item No kernel version control
+    \item Require deterministic build process
+    \item Can depends on external dependencies
   \end{itemize}
-  \end{tcolorbox}
-
-
-  % Nix ensures the reproducibility of software environments.
-  \vspace{1em}
-
-  %\begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black]
-  %  Nix is not a runtime, \\
-  %\end{tcolorbox}
-  \note{
-   Nix is not a runtime, (Results will be stored in the store also, hard to distributes etc)\\
-   Nix offers nothing to deals with data
-  }
-
 \end{frame}
 
-
 \begin{frame}[fragile,noframenumbering]
   \center Thanks.
 \end{frame}
@@ -585,5 +397,97 @@ src = fetgit {
   \end{tabular}
 \end{frame}
 
+\begin{frame}[fragile]{Channels}
+
+  \only<1>{
+
+  \vspace{1em}
+\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
+  \center
+  A \textbf{channel} is link to  branch of NixPkgs tested with continuous integration.
+\end{tcolorbox}
+
+  \vspace{1em}
+  Channels are useful to downloaded latest packaged version of a software. \\
+
+  \vspace{1em}
+
+  \begin{itemize}
+    \item nixpkgs-unstable (feeling lucky?)
+    \item nixpkgs-19.03 (current stable)
+    \item nixpkgs-18.09 (outdated)
+  \end{itemize}
+
+  \vspace{1em}
+  (Channels benefit from binary cache.)
+
+  }
+  \only<2>{
+
+  \begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black]
+    \center
+    Channels are not fully reproducible, as they are subject to updates.
+  \end{tcolorbox}
+
+  \vspace{1em}
+    As experimenters, we will use another mechanism called pinning.
+  }
+
+\end{frame}
+
+
+\begin{frame}{Key points}
+
+  \begin{enumerate}
+  \item Applies functional paradigm to package management system.
+  \item Packages are called derivations, written in Nix lang.
+  \item Such derivation defines a building process.
+  \item A built derivation is located to the nix store into a dedicated directory.
+  \item The directory name is generated from a hash of its inputs and its nix file.
+  \item Packages can have reference on other packages from the store.
+  \item The list of existing packages are into NixPkgs repository.
+  \end{enumerate}
+
+\end{frame}
+
+\begin{frame}{Nix - Command line interface}
+  How do we use Nix ?
+  \vspace{1em}
+  \begin{itemize}
+    \item \textit{nix-build}: build a derivation (that will be placed to the nix store),
+    \item \textit{nix-env}: install a package (in your current environment)
+      \note{Speak about profiles?},
+    \item \textit{nix search}: search for available packages.
+    \item \textit{nix-shell}: start a shell in the build environment of a derivation,
+  \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]{Nix shell}
+\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
+  \center
+  Virtualenv on steroids.
+\end{tcolorbox}
+
+\vspace{1em}
+Start an interactive session within the build environment of a derivation.
+
+\vspace{1em}
+Enables to describe environment, in which we can start a shell.
+
+\vspace{-1em}
+  \begin{lstlisting}[language=Nix,basicstyle=\small]
+{
+  pkgs ? import (fetchTarball
+    https://github.com/archive/e860b629bc0d1f9b.tar.gz)
+  {}
+}:
+pkgs.mkShell rec {
+  buildInputs = [ valgrind gdb cmake ];
+}
+  \end{lstlisting}
+
+\end{frame}
+
+
 
 \end{document}