diff --git a/doc/Changes.tex b/doc/Changes.tex
new file mode 100644
index 0000000000000000000000000000000000000000..c6c168d833862b842cc896d3c5058a5665eeeb46
--- /dev/null
+++ b/doc/Changes.tex
@@ -0,0 +1,43 @@
+\section{Changes}
+
+\index{Frida!history|(}%
+\index{History of Frida|(}%
+Development of Frida was started by J.~Wuttke in 1990.
+\index{Wuttke, Joachim}%
+Originally, the software was called IDA (``inelastic data analysis'').
+\index{IDA}%
+The code was written in Fortran77,
+\index{Fortran}%
+and depended on the proprietary NAG library for numerics, and on proprietary compilers.
+It was freely given to interested scientist,
+and some modules were contributed back.
+When J.~Wuttke left the field in 2001,
+maintenance of IDA was continued in the group of A.~Meyer at DLR Köln.
+\index{Meyer, Andreas}%
+
+In 2001--2003, J.~Wuttke wrote a C$++$ program
+\index{C$++$@C++}%
+for the analysis of time series,
+heavily drawing on concepts from IDA.
+When he came back to neutron science in 2005,
+he used this code as base for a modernized rewrite of IDA.
+By then, publication of open-source software on the world wide web had become commonplace.
+The akronym IDA, however, had already been taken by other software projects.
+Therefore, J.~Wuttke renamed his project Frida (``Fast reliable interactive data analysis'').
+\index{Frida!name}%
+The Fortran code IDA became Frida1,
+\index{Frida1}%
+and the new C$++$ code was called Frida2.
+
+Since April 2008,
+code changes are tracked in the version control system \texttt{git},
+\index{Version control}%
+\index{git}%
+currently located at \url{git://apps.jcns.fz-juelich.de/frida.git/}.
+Since April 2010,
+changes are described in the file \texttt{CHANGELOG},
+which is part of the source,
+and also is available online at \url{http://apps.jcns.fz-juelich.de/src/frida/frida2-CHANGELOG}.
+
+\index{Frida!history|)}%
+\index{History of Frida|)}%
diff --git a/doc/DataModel.tex b/doc/DataModel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..66b9bdd0717a13bb8101e6afd9d67f2539ac40ed
--- /dev/null
+++ b/doc/DataModel.tex
@@ -0,0 +1,31 @@
+\section{Data Model}
+
+Frida is basically a huge collection of methods that operate on files.
+The structure of these files shall be designated as Frida's \E{data model}.
+\index{Data model}%
+
+The data model is the most basic design feature of Frida.
+Internal and external storage formats and all method interfaces depend on it.
+It has evolved only little since the inception of Frida,
+and changes always go towards greater genericity.\footnote
+{Major changes were the addition of multi-$z$-coordinates in 1996,
+the insertion of an abstraction layer for $x-y-dy$ in 2006,
+and full support for $r$ pars in 2010.}
+Therefore, Frida will always remain backward compatible
+\index{Compatibility!data}%
+in the sense
+that older data can still be treated with newer software versions.
+
+Frida supports two types of files: \E{data files} and \E{curve files}.
+
+\subsection{Data files}
+
+A \E{data file} is basically an array of »spectra«. A \E{spectrum} contains $x,y$ data pairs (or $x,y,dy$ triples, if errors are given). The physical meaning of $x$ and $y$ is stored as »coordinate« information in the »meta data« of the file. A \E{coordinate} consists of »name« and »unit«, e.g. "mass (kg)" or "counts (Hz)".
+
+If a data file contains more than one spectrum, it is mandatory that there is a $z$ coordinate; there may be several (denoted $z0, z1, ...$). Each spectrum contains as many $z$ entries as there are $z$ coordinates.
+
+There are additional \E{file meta data}, like the »file name« and the »documentation« array. Furthermore, a file may contain an arbitrary number of »file constants«. An \E{file constant} is a coordinate-value pair, denoted $r0, r1, ...$. For instance, $r0$ may contain the coordinate "T (K)" and the value 320 to indicate a temperature of 320 K.
+
+\subsection{Curve files}
+
+A \E{curve file} contains additional file meta data, most importantly a \E{curve definition}. This is either an »expression« or a »script command«. Instead of a set of »spectra«, a curve file contains a set of »curves«. Each \E{curve} contains an array of curve parameters $p0, p1, ...$ (as many as prescribed by the curve definition), an array of flags that indicate whether a parameter is free or fixed, and a few numeric values $cq0, cq1, cq2$ describing fit quality.
diff --git a/doc/Introduction.tex b/doc/Introduction.tex
index a382aad46cca8aa5cdf6e06d4158e6a27d586e99..64d09296625b890eb5570cb143da1fd44ce85475 100644
--- a/doc/Introduction.tex
+++ b/doc/Introduction.tex
@@ -18,3 +18,5 @@ partner institutes.
 
 This User Manual is a fragment:
 A few topics are covered in depth, others are missing completely.
+For complementary information,
+see the online docs at \url{http://apps.jcns.fz-juelich.de/doku/frida/start}.
diff --git a/doc/Setup.tex b/doc/Setup.tex
index efcd9d15e9871e945b5f926e684ec96cc25d4aaa..0d0dfcd9c2c10bfb1e570d90b0ec9422823a9e60 100644
--- a/doc/Setup.tex
+++ b/doc/Setup.tex
@@ -62,6 +62,8 @@
 \@ifpackagelater{unicode-math}{2014/07/01}{\olducmfalse}{\olducmtrue}
 \makeatother
 
+\def\E#1{\textit{#1}}
+
 %-------------------------------------------------------------------------------
 %  Sectioning
 %-------------------------------------------------------------------------------
diff --git a/doc/UserManual.tex b/doc/UserManual.tex
index 7ce99637d1487637b5d8f78a180c4997f60aacc6..5f2807fd87924db0b6ff580f2605e5ace1557498 100644
--- a/doc/UserManual.tex
+++ b/doc/UserManual.tex
@@ -22,7 +22,9 @@
 \tableofcontents %\cleardoublepage
 
 \include{Introduction}
+\include{DataModel}
 \include{GraphicPostprocessing}
+\include{Changes}
 
 %\otherchapter{Bibliography}
 %\section*{Bibliography}