diff --git a/org.eclipse.rmf.documentation/rmf-latex/overview.tex b/org.eclipse.rmf.documentation/rmf-latex/overview.tex
index c34011e..ab9cecb 100644
--- a/org.eclipse.rmf.documentation/rmf-latex/overview.tex
+++ b/org.eclipse.rmf.documentation/rmf-latex/overview.tex
@@ -33,7 +33,7 @@
 \pror{} falls into the category of free tools.  But compared to the ones mentioned, it contains important features from professional tools, including traceability and typed attributes.  Further, by taking advantage of the Eclipse ecosystem, the tool can be augmented by plug-ins for version support, model integration and much more.
 
 \begin{info}
-  Professional support, commercial components and integration services are available from \href{http://formalmind.com}{Formal Mind} and other service providers.
+  Professional support, commercial components and integration services are available from \href{http://formalmind.com}{Formal Mind}, via a \href{https://reqif.academy}{ReqIF Academy premium membership}.
 \end{info}
 
 
@@ -67,7 +67,7 @@
 In 2004, the HIS (Hersteller Initiative Software), a panel of Germany's automotive manufacturers (Daimler, VW, Porsche, Audi and BMW Group) developed the idea of creating the ``Requirements Interchange Format''.  In 2005, the first version of that format was presented at the REConf, a conference about requirements engineering and management, in Munich.  In 2008, the HIS Steering Committee decided that the internationalization and maintenance of the Requirements Interchange Format should be proceeded with the ProSTEP iViP Association.  A project was set up and a team was built that includes members of the ProSTEP iViP Association, representatives of manufacturing companies (Audi, BMW  Group, Daimler, VW, Bosch and Continental), tool vendors (Atego, IBM, MKS) and development partners (HOOD GmbH, PROSTEP AG).
 
 \begin{info}
-Further reading: \href{http://formalmind.com/de/blog/his-exchange-process-requirements-all-you-ever-wanted-know}{The HIS Exchange Process for Requirements–all you ever wanted to know}.
+Further reading: \href{https://reqif.academy/faq/his-process/}{The HIS Exchange Process for Requirements–all you ever wanted to know} at ReqIF Academy.
 \end{info}
 
 The ReqIF team expects that making the Requirements Interchange Format an OMG standard increases the number of interoperable exchange tool implementations on the market, fosters the trust of companies exchanging requirement information in the exchange format and provides safety of investments to tool vendors.
@@ -238,7 +238,7 @@
 
   \item[Attribute.\index{attribute}] (Excel-equivalent: Cell) An attribute holds the actual content of a SpecObject.
 
-In Excel, a new attribute is simply created by putting a column header on a column.  In ReqIF, columns are created via \menu{ProR | Column Configuration}, or by clicking on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/ProRSpecViewConfiguration.png}.  But content will only be shown if the SpecObject of that row has an attribute of that name.
+In Excel, a new attribute is simply created by putting a column header on a column.  In ReqIF, columns are created via \menu{Studio | Column Configuration}, or by clicking on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/ProRSpecViewConfiguration.png}.  But content will only be shown if the SpecObject of that row has an attribute of that name.
 
 \index{standard attribute}
 \index{attribute!standard}
diff --git a/org.eclipse.rmf.documentation/rmf-latex/presentations.tex b/org.eclipse.rmf.documentation/rmf-latex/presentations.tex
index aff46c7..a012a7d 100644
--- a/org.eclipse.rmf.documentation/rmf-latex/presentations.tex
+++ b/org.eclipse.rmf.documentation/rmf-latex/presentations.tex
@@ -59,11 +59,11 @@
 \index{default handlers}
 % ===================================================================================
 
-Sometimes, it is desirable to use a presentation as the default for rendering (and editing) a specific datatype.  For example, the open source ProR can not render formatted (XHTML) text and instead shows a simplification in plain text.  But formalmind Studio offers the RTF presentation that allows rich rendering and editing.  Thus, it would be nice if XHTML datatypes would always be rendered using the RTF presentation, if installed.
+Sometimes, it is desirable to use a presentation as the default for rendering (and editing) a specific datatype.  For example, the open source RMF can not render formatted (XHTML) text and instead shows a simplification in plain text.  But \pror{} offers the RTF presentation that allows rich rendering and editing.  Thus, it would be nice if XHTML datatypes would always be rendered using the RTF presentation, if installed.
 
 This is possible.  And in fact, presentations can request to be used as default handlers.  If such a presentation is installed, it will automatically take over from the default.
 
-Users can configure and override this.  To do so, go to \menu{Window | Preferences | ProR | Default Presentations}.  The resulting dialog is shown in Figure~\ref{fig:default-handlers}.
+Users can configure and override this.  To do so, go to \menu{Window | Preferences | ReqIF | Default Presentations}.  The resulting dialog is shown in Figure~\ref{fig:default-handlers}.
 
 \begin{figure}
   \centering
@@ -85,8 +85,8 @@
 \end{warning}
 
 % ===================================================================================
-\section{Built-in ProR Presentations}
-\index{presentations!build-in ProR}
+\section{Built-in Presentations}
+\index{presentations!build-in}
 % ===================================================================================
 
 The following presentations are part of the Eclipse RMF project and are therefore open source.
diff --git a/org.eclipse.rmf.documentation/rmf-latex/reference-part1.tex b/org.eclipse.rmf.documentation/rmf-latex/reference-part1.tex
index c68ceaf..f03d3a9 100644
--- a/org.eclipse.rmf.documentation/rmf-latex/reference-part1.tex
+++ b/org.eclipse.rmf.documentation/rmf-latex/reference-part1.tex
@@ -28,7 +28,7 @@
 
 Eclipse is a Java-based application.  You need a Java Runtime Environment (JRE) on your computer in order to run \pror{}.
 
-\pror{} requires JRE 1.6 or better.  However, some of the features from ProR Essentials require JRE 1.7 or better.  Further, we recommend the version from Oracle, and not OpenJDK.
+\pror{} requires JRE 1.6 or better.  However, some of the features from Essentials require JRE 1.7 or better.  Further, we recommend the version from Oracle, and not OpenJDK.
 
 \begin{info}
 You can download Java at \href{https://www.java.com}{java.com}.
@@ -42,17 +42,17 @@
 
 This chapter explores the installation of \term{Eclipse Products}, i.e. software that you can download and run on your computer.  This is in contrast to \term{features} or \term{plugins}, which can be added to an existing product.
 
-When working with Eclipse, you have to start with a base installation.  For working with ProR, we recommend using \href{http://formalmind.com/studio}{formalmind Studio}, but you can start with any Eclipse product.
+When working with Eclipse, you have to start with a base installation.  However, we recommend using \href{https://reqif.academy}{ReqIF Studio}, but you can start with any Eclipse product.
 
 Once you have identified the product you would like to use, you need to download it, which is typically a .zip file.  Create a folder and extract the content of the .zip file into that folder.
 
 \begin{info}
-We recommend to call the folder \menu{studio} or \menu{pror}, and to store it where your executables are located: On Windows in \menu{Program Files}, on Linux in \menu{~/bin}.  But any location will do.
+We recommend to call the folder \menu{studio} and to store it where your executables are located: On Windows in \menu{Program Files}, on Linux in \menu{~/bin}.  But any location will do.
 
 We recommend to creating a shortcut for launching it.
 \end{info}
 
-You launch the product by double-clicking on the launcher in the folder you created.  For formalmind Studio, this is called \menu{studio.exe} or \menu{studio}.
+You launch the product by double-clicking on the launcher in the folder you created.  For \pror{}, this is called \menu{studio.exe} or \menu{studio}.
 
 The first time you launch Eclipse, it will ask you for the \term{Workspace} location, see Section \ref{sec:workspaces}.
 
diff --git a/org.eclipse.rmf.documentation/rmf-latex/reference-part2.tex b/org.eclipse.rmf.documentation/rmf-latex/reference-part2.tex
index fd36e07..ddc7d6a 100644
--- a/org.eclipse.rmf.documentation/rmf-latex/reference-part2.tex
+++ b/org.eclipse.rmf.documentation/rmf-latex/reference-part2.tex
@@ -11,7 +11,7 @@
 
 The Specification Editor shows the SpecObjects of a Specification, arranged in a grid view.  The hierarchy is shown via the indent of the first column, as well as through the numbering in the row header.
 
-The columns show the Attributes with the names that match the column names (as shown in the header).  The columns can be resized by dragging.  Other operations, in particular reordering, adding and deleting columns are done via the \menu{Column Dialog}, accessible via \menu{ProR | Column Configuration } or the toolbar \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/Column.png}. 
+The columns show the Attributes with the names that match the column names (as shown in the header).  The columns can be resized by dragging.  Other operations, in particular reordering, adding and deleting columns are done via the \menu{Column Dialog}, accessible via \menu{Studio | Column Configuration } or the toolbar \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/Column.png}. 
 
 The leftmost column shows the hierarchy and carries an icon.  The icon indicates whether it is a lone SpecHierarchy \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/spechierarchy.png} or a SpecObject \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/requirement.png}.
 
@@ -87,7 +87,7 @@
 The validation results are shown in the Eclipse Problem View.  In addition, it is possible to open the ReqIF file in question in a text editor and to generate error markers, as shown in Figure~\ref{fig:error-marker}.
 
 \begin{info}
-In addition to the validator that is built into the tool, there is also a command line version available, which can be downloaded for free from \url{http://formalmind.com/consequent}.
+In addition to the validator that is built into the tool, there is also a command line version available, which can be downloaded for free from \url{https://reqif.academy}.
 \end{info}
 
 \begin{figure}
@@ -139,16 +139,16 @@
 \index{preferences}
 % -----------------------------------------------------------------------------------
 
-The application-wide settings of \pror{} are accessed via \menu{Window | Preferences | ProR}.  Configuration elements are:
+The application-wide settings of \pror{} are accessed via \menu{Window | Preferences | ReqIF}.  Configuration elements are:
 
 \begin{description}
-\item[Pror.] In the top level menu, the warning message for encountering simplified XHTML can be disabled.
+\item[ReqIF.] In the top level menu, the warning message for encountering simplified XHTML can be disabled.
 \item[Default Presentations.] \pror{} has basic cell editors for each ReqIF \term{Datatypes}.  But it is possible to install new editors with better or different capabilities.  With this setting, Presentations can be selected to handle certain Datatypes by default.
 \end{description}
 
 \begin{info}
 \index{XHTML}
-Particularly popular is the free Presentation from formalmind Essentials for handling XHTML.  The standard editor from ProR converts rich text to plain text.  The rich text Presentation is preinstalled with formalmind Studio.
+Particularly popular is the free Presentation from Essentials for handling XHTML.  The standard editor from RMF converts rich text to plain text.  The rich text Presentation is preinstalled with ReqIF Studio.
 \end{info}
 
 % -----------------------------------------------------------------------------------
@@ -157,7 +157,7 @@
 \label{sec:general_configuration}
 % -----------------------------------------------------------------------------------
 
-This configuration is accessed either via \menu{ProR | General Configuration}, or
+This configuration is accessed either via \menu{Studio | General Configuration}, or
 via the \includegraphics[height=0.8em]{../rmf-images/ReqIFUIToolExtension.png} button on the toolbar.
 
 Currently, there is only one configuration element: \menu{Label Configuration}.
@@ -202,7 +202,7 @@
 \label{fig:DatatypeConfig}
 \end{figure}
 
-This configuration is opened via \menu{ProR | Datatype Configuration...}
+This configuration is opened via \menu{Studio | Datatype Configuration...}
 
 The dialog shows two folders, one for SpecTypes and one for Datatypes.
 SpecTypes are created for typing elements that have attributes
@@ -298,7 +298,7 @@
 
 \item[Axiom.] This commercial importer supports the selective merging of exchange data with an existing ReqIF model.  It is described in detail in Section~\ref{sec:axiom}.
 
-More information at the \href{http://formalmind.com/axiom}{Formal Mind Product Site}.
+More information at the \href{https://reqif.academy}{ReqIF Academy}.
 
 \end{description}
 
@@ -359,7 +359,7 @@
 \begin{description}
 \item[ReqIFz Export.] This standard exporter takes an Eclipse project and produces a ReqIF archive (.reqifz).
 
-\item[Axiom.] This commercial exporter supports the selective exporting of exchange data for supplier communication.  More information at the \href{http://formalmind.com/axiom}{Formal Mind Product Site}.
+\item[Axiom.] This commercial exporter supports the selective exporting of exchange data for supplier communication.  More information at the \href{https://reqif.academy}{ReqIF Academy}.
 
 \item[HTML.] The HTML export is not a ``real'' export, as it is accessed differently.  It produces an HTML view from an open Specification.  To use it, you need to have a Specification Editor open.  Then select \menu{File | Print...}.
 \end{description}
diff --git a/org.eclipse.rmf.documentation/rmf-latex/tutorial.tex b/org.eclipse.rmf.documentation/rmf-latex/tutorial.tex
index 06588d1..8e93297 100644
--- a/org.eclipse.rmf.documentation/rmf-latex/tutorial.tex
+++ b/org.eclipse.rmf.documentation/rmf-latex/tutorial.tex
@@ -31,9 +31,9 @@
 \subsection{Install \pror{}}
 % -----------------------------------------------------------------------------------
 
-The easiest way for installing \pror{} is downloading \href{http://formalmind.com/studio}{formalmind Stu\-dio}.  This is a standalone-application that is based on Eclipse ProR, combined with some enhancements.
+The easiest way for installing \pror{} is downloading \href{https://reqif.academy}{ReqIF Studio}.  This is a standalone-application that is based on Eclipse RMF, combined with some enhancements.
 
- Alternatively, you can install ProR in any Eclipse-Installation via its update site (listed on the \href{https://www.eclipse.org/rmf/download.php}{RMF Download page}).  This is recommended for advanced users only who need to integrate RMF with other Eclipse-based components.
+ Alternatively, you can install RMF in any Eclipse-Installation via its update site (listed on the \href{https://www.eclipse.org/rmf/download.php}{RMF Download page}).  This is recommended for advanced users only who need to integrate RMF with other Eclipse-based components.
 
 \begin{info}
 The installation is described in detail in Section~\ref{sec:installation}.
@@ -106,7 +106,7 @@
 \label{fig:datatype_configuration}
 \end{figure}
 
-To add new attributes, we open the \menu{Datatype Configuration} dialog with \menu{ProR | Datatype Configuration}.  Alternatively you can also click on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/SpecType.png} in the Tool Bar.
+To add new attributes, we open the \menu{Datatype Configuration} dialog with \menu{Studio | Datatype Configuration}.  Alternatively you can also click on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/SpecType.png} in the Tool Bar.
 
 The resulting dialog box has two folders in the upper pane: one for \term{SpecTypes} and one for \term{Datatypes}.  Currently, there is only one Datatype ``T\_String32k'' and two SpecTypes, one called ``Requirements Type'' with the attribute ``Description'' and one called ``Specification Type'' with the attribute ``Description''.
 
@@ -127,7 +127,7 @@
 \label{fig:column_configuration}
 \end{figure}
 
-To show the new Attributes in the Specification, we have to configure the columns shown in the \menu{Specification Editor}.  We do this by selecting \menu{ProR | Column Configuration}.  You can also click on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/Column.png} in the Tool Bar.
+To show the new Attributes in the Specification, we have to configure the columns shown in the \menu{Specification Editor}.  We do this by selecting \menu{Studio | Column Configuration}.  You can also click on \includegraphics[height=0.8em]{../rmf-images/icons/full/obj16/Column.png} in the Tool Bar.
 
 The resulting Dialog shows one entry, ``Description'' for the one and only Column of the Specification.  In the ``Value'' column double click on ``Description to choose it and replace it with ``ID''.
 
@@ -159,7 +159,7 @@
 \index{SpecHierarchy}
 We said before that Specifications contain references to SpecObjects.  A \menu{SpecHierarchy} is the wrapper that allows the hierarchical structure and that points to the referenced SpecObject.  Usually, we don't have to be concerned with them.  Therefore the second option: If selected, a new SpecHierarchy is created and associated with a new SpecObject, which in turn is set immediately to the given \term{SpecType}.  If we had more than just one SpecType (besides ``Requirements Type''), there would be an entry for each SpecType in the context menu.
 
-To continue the exercise, select the \menu{New Child | SpecObject (Requirement Type)}.  Now we have two SpecObjects.  The original is numbered on the far left-hand side of the pane with a ``1''.  The second one, the child, is numbered ``1.1''.  Now we should change the ID's of each entry.  Click in the cell of the column ``ID`` (in row 1) and type in INF-1.  Under Description, type ''A ProR tutorial.``  For the second, change the ID to REQ-1 and ''Learn how to create a new requirement'' in the ``Description'' column.
+To continue the exercise, select the \menu{New Child | SpecObject (Requirement Type)}.  Now we have two SpecObjects.  The original is numbered on the far left-hand side of the pane with a ``1''.  The second one, the child, is numbered ``1.1''.  Now we should change the ID's of each entry.  Click in the cell of the column ``ID`` (in row 1) and type in INF-1.  Under Description, type ''A ReqIF tutorial.``  For the second, change the ID to REQ-1 and ''Learn how to create a new requirement'' in the ``Description'' column.
 
 Feel free to add a few more rows and or even new structures.  Yours should look somethinig similar to Figure~\ref{fig:requirements_hierarchy}.
 
@@ -261,7 +261,7 @@
 \subsection{Multiple SpecTypes}
 % -----------------------------------------------------------------------------------
 
-The first entry in our Specification (``A \pror{} Tutorial'') isn't really a requirement.  Thus, it doesn't need an ID or an owner, and it would be nice to highlight it somehow.  For highlighting, we have the \menu{Headline Presentation}.  We will:
+The first entry in our Specification (``A ReqIF Tutorial'') isn't really a requirement.  Thus, it doesn't need an ID or an owner, and it would be nice to highlight it somehow.  For highlighting, we have the \menu{Headline Presentation}.  We will:
 
 \begin{itemize}
 
@@ -280,7 +280,7 @@
 \label{fig:headlineConfig}
 \end{figure}
 
-By selecting \menu{ProR | Datatype Configuration}, we open the dialog where we can create new SpecTypes and Datatypes.  For the first time, we create a new SpecType by right-clicking on \menu{SpecTypes}.  One of the entries in the child menu is \menu{SpecObject Type}.
+By selecting \menu{Studio | Datatype Configuration}, we open the dialog where we can create new SpecTypes and Datatypes.  For the first time, we create a new SpecType by right-clicking on \menu{SpecTypes}.  One of the entries in the child menu is \menu{SpecObject Type}.
 
 Once created, we select it and rename as ``Headline Type'' in the \menu{Property Pane}.
 
