diff --git a/.vscode/settings.json b/.vscode/settings.json
index 33e06df93825b628690fac889abfb859303d2232..82fb776ac967efff25ed1ad1e1d1d9b507728f06 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,6 +10,8 @@
         "ORAM",
         "Untrusted",
         "alertblock",
+        "allcaps",
+        "allsmallcaps",
         "amsalpha",
         "beamer",
         "bijection",
@@ -26,6 +28,8 @@
         "parametrization",
         "progressbar",
         "providecommand",
+        "smallcaps",
+        "titleformat",
         "usetheme"
     ]
 }
\ No newline at end of file
diff --git a/bibfile.bib b/bibfile.bib
index abb8f35bc7557faa06ca050e14c626fbc99095aa..8307e9806bf0c96bedb285515afcfb0bea65e4dc 100644
--- a/bibfile.bib
+++ b/bibfile.bib
@@ -17,4 +17,22 @@
 	publisher = {ACM},
 	address = {New York, NY, USA},
 	keywords = {pseudorandom functions, simulation of random access machines, software protection},
+}
+
+@article{Chang:2016:ORD:2994509.2994528,
+	author = {Chang, Zhao and Xie, Dong and Li, Feifei},
+	title = {Oblivious RAM: A Dissection and Experimental Evaluation},
+	journal = {Proc. VLDB Endow.},
+	issue_date = {August 2016},
+	volume = {9},
+	number = {12},
+	month = aug,
+	year = {2016},
+	issn = {2150-8097},
+	pages = {1113--1124},
+	numpages = {12},
+	url = {http://dx.doi.org/10.14778/2994509.2994528},
+	doi = {10.14778/2994509.2994528},
+	acmid = {2994528},
+	publisher = {VLDB Endowment},
 } 
\ No newline at end of file
diff --git a/build.sh b/build.sh
index 7f39a7da6f526023ea41ad03533882b5d2c27e6f..270fed7c660ad946394b042761891d09005b0d9d 100755
--- a/build.sh
+++ b/build.sh
@@ -3,7 +3,7 @@
 shopt -s globstar
 set -e
 
-INTERACTION=nonstopmode
+INTERACTION=batchmode
 OUTDIR=dist
 JOBNAME=presentation
 ITERATIONS=3
@@ -44,7 +44,7 @@ while getopts "i:vgt" o; do
 	case "${o}" in
 		g)
 			DEBUG=true
-			INTERACTION=batchmode
+			INTERACTION=nonstopmode
 			;;
 		v)
 			VERBOSE=true
diff --git a/main.tex b/main.tex
index 0b1168fdbc935e979c81789cbd851670a0d10bc2..0d16ef84e7816de9486ac8c0a24f41274060199b 100644
--- a/main.tex
+++ b/main.tex
@@ -3,6 +3,8 @@
 \documentclass{beamer}
 
 \input{version}
+
+\input{packages}
 \input{preamble}
 
 \begin{document}
@@ -11,6 +13,18 @@
 
 	\begin{frame}{Table of Contents}
 		\tableofcontents
+		
+		\note{
+			\begin{itemize}
+				\item 
+					Start with the problem statement.
+					What an ORAM is and why we need it.
+				\item
+					Talk about what ORAMs are already there and what they disadvantages are.
+				\item
+					Then go in the same order as paper goes.
+			\end{itemize}
+		}
 	\end{frame}
 
 	\input{sections/oblivious-memory}
@@ -23,7 +37,6 @@
 	\input{sections/applications-and-extensions}
 	\input{sections/conclusion}
 
-
 	\begin{frame}[standout]
 		Questions?
 	\end{frame}
@@ -32,7 +45,11 @@
 		\bibliographystyle{amsalpha}
 		\bibliography{bibfile}
 	\end{frame}
-
+	
 	\maketitle
+	
+	\appendix
+
+	\input{sections/appendix}
 
 \end{document}
diff --git a/packages.tex b/packages.tex
new file mode 100644
index 0000000000000000000000000000000000000000..9f17ac704107675c11f849dd88854f81ff9d879d
--- /dev/null
+++ b/packages.tex
@@ -0,0 +1,6 @@
+% cSpell:disable
+
+\usepackage{appendixnumberbeamer}
+\usepackage{pgfpages}
+\usepackage{booktabs}
+\usepackage{bm}
\ No newline at end of file
diff --git a/preamble.tex b/preamble.tex
index 93ab60e9561e5a034119cad47a1d3fc1a84b2815..f6b7331dc52d6c99d03e92382eea7684e4eebf79 100644
--- a/preamble.tex
+++ b/preamble.tex
@@ -1,8 +1,15 @@
-\usetheme[progressbar=frametitle]{metropolis}
+% cSpell:disable
 
-\title{Path ORAM: An Extremely Simple Oblivious RAM Protocol} % chktex 13
+\usetheme[
+	progressbar=frametitle,
+	titleformat section=smallcaps
+]{metropolis}
 
-\subtitle{Discussion}
+\setbeameroption{show notes on second screen}
+
+\title{Data-X Talk} % chktex 13
+
+\subtitle{Path ORAM:\@An Extremely Simple Oblivious RAM Protocol}
 
 \date{Built from \href{https://git.dbogatov.org/bu/PathORAM-Talk/commit/\version}{\emph{\version}} on \today}
 
@@ -17,3 +24,15 @@
 		keepaspectratio
 	]{static/logo.eps}\hspace{325pt}\vspace{-30pt}
 }
+
+\makeatletter
+\def\beamer@framenotesbegin{% at beginning of slide
+	\usebeamercolor[fg]{normal text} 
+		\gdef\beamer@noteitems{}%
+		\gdef\beamer@notes{}% 
+}
+\makeatother
+
+
+\newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)}
+\newcommand{\RAM}{\textbf{RAM}}
\ No newline at end of file
diff --git a/sections/oblivious-memory.tex b/sections/oblivious-memory.tex
index 7d5c3152bcc1284dce393357ce1ba6b73168ae20..89a79fe382a10957c28e2e18433df2535cdaf9ea 100644
--- a/sections/oblivious-memory.tex
+++ b/sections/oblivious-memory.tex
@@ -14,6 +14,19 @@
 			Adversary still sees the \textbf{access pattern}.
 		\end{alertblock}
 
+		\note{
+			The idea is to build a secure cloud, and more specifically --- secure database.
+			The server is untrusted --- we assume an adversary can read every byte on the disk and track all CPU operations.
+			The first step is encrypting the database, so that only client can decrypt.
+			But that is just the first step --- what are we missing?
+
+			An adversary can see the access pattern.
+			It can see which records are accessed more often.
+			Which records are accessed only after some other records were touched.
+			How ofter read vs write operations occur.
+
+			\emph{What are the examples of attacks when access pattern is leaked?}
+		}
 	\end{frame}
 
 	\begin{frame}{Oblivious RAM}
@@ -22,4 +35,39 @@
 			A machine is \emph{oblivious} if the sequence in which it accesses memory locations is equivalent for any two inputs with the same running time~\cite{Goldreich:1996:SPS:233551.233553}.
 		\end{block}
 
+		\note{
+			A solution is to design an oblivious memory access system.
+			This definition of oblivious machine is cited from the original paper on ORAMs by Goldreich and others from May 1996 --- around my birthday.
+			Among the other things the paper states a number of theorems on computational bounds of generic ORAMs.
+
+			Although the paper analyzes generic ORAMs, 20 years ago people were more concerned about CPU working with RAM access patterns.
+			The cloud did not really exist at that time.
+
+			So the one purpose of ORAM is to hide the access pattern.
+			We will come to more formal security definition in a couple of slides.
+		}
 	\end{frame}
+
+	\begin{frame}{Theoretical bounds}
+		
+		\begin{block}{Theorems}
+			Let $\RAM(m)$ denote a \RAM\ with $m$ memory locations and access to a random oracle.
+			Then $t$ steps of an arbitrary $\RAM(m)$ can be simulated by
+			\begin{itemize}
+				\item
+					at most $\BigO{t \cdot (\log_2 t)^3}$ steps of an oblivious $\RAM(m \cdot (\log_2 m)^2 )$
+				\item
+					at least $\max \{ m, (t-1) \cdot \log_2 m \}$ steps of an oblivious $\RAM(m)$
+			\end{itemize}
+
+			\cite{Goldreich:1996:SPS:233551.233553} % chktex 2
+
+		\end{block}
+		
+		\note{
+			This are some theorems stated and proved in the paper.
+			I am not going to do proofs here.
+			The idea is that these are theoretical bounds for generic ORAMs.
+			Designing our owm ORAM the aim is to come as close as possible to lower bounds.
+		}
+	\end{frame}
\ No newline at end of file
diff --git a/sections/overview-of-other-orams.tex b/sections/overview-of-other-orams.tex
index 87c38907eafd1110e7cc376bac8d39dd01a0fcf6..16f11d5634db7673d09631167ffa98db6789111d 100644
--- a/sections/overview-of-other-orams.tex
+++ b/sections/overview-of-other-orams.tex
@@ -1 +1,37 @@
 \section{Overview of other ORAMs}
+
+	\begin{frame}{ORAMs Experimental Evaluation}
+		
+		\begin{tabular}{ l c c c c }
+
+			\toprule%
+
+			$ORAM$				& Computation	& Communication	& Server		& Client															\\
+
+			\midrule%
+
+			Basic-SR			& $N \log N$	& $N \log N$	& $N$			& $1$																\\
+			IBS-SR				& $N$			& $\sqrt{N}$	& $N$			& $\sqrt{N}$														\\
+			Basic-HR			& $N \log^2 N$	& $N \log^2 N$	& $N \log N$	& $1^b$																\\
+			BB-ORAM				& $\log^2 N$	& $N \log^2 N$	& $N \log N$	& $1$																\\
+			TP-ORAM				& $\sqrt{N}$	& $1$			& $N$			& $\sqrt{N} + \frac{N}{B}$											\\
+			\textbf{Path-ORAM}	& $\bm{\log N}$	& $\bm{1}$		& $\bm{N}$		& \footnote{$\BigO{\log N} \cdot \omega(1) + \BigO{\frac{N}{B}}$}
+
+		\end{tabular}
+
+		Table 2 from~\cite{Chang:2016:ORD:2994509.2994528}.
+		Worst-case scenarios shown.
+
+		\note{
+			Chang and others published a great paper a year ago doing accurate comparison of known ORAM systems.
+			They analyzed space and time complexity of the systems.
+			The result is on the table.
+
+			Computational overhead is a composite of communication, encryption/decryption and client running overheads.
+			Communication overhead measures how much information is transmitted during a round of read and write.
+			Server and client respectively show how much space is used by an ORAM on the server and on the client.
+
+			I am not going to elaborate on all ORAMs, but it is clear that one of them wins in every category.
+			This is why we have chosen it for our secure cloud.
+		}
+	\end{frame}
diff --git a/static/papers/orams-comparison.pdf b/static/papers/orams-comparison.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..38462f6852ea830a07ddf04d21bd92efd8476569
Binary files /dev/null and b/static/papers/orams-comparison.pdf differ