diff --git a/contributing/index.html b/contributing/index.html
index f08b0b2..d52fd3f 100644
--- a/contributing/index.html
+++ b/contributing/index.html
@@ -10,14 +10,11 @@
 <title>Contributors Guide | CogniCrypt</title>
 <meta property="og:title" content="Contributors Guide | CogniCrypt" />
 <meta name="twitter:title" content="Contributors Guide | CogniCrypt" />
-<meta name="description" content="There are several opportunities for non-project-members to contribute to CogniCrypt: * CogniCrypt users may contribute Bug Reports and Feature Requests.
-* Regular developers who take interest in CogniCrypt may provide bug fixes and other kind of code contributions. * Lastly, cryptography experts may share their own cryptographic components so that they can be used by CogniCrypt users.
+<meta name="description" content="There are several opportunities for non-project-members to contribute to CogniCrypt. CognICrypt users may contribute bug reports and feature requests. Regular developers who take interest in CogniCrypt may provide bug fixes and other kind of code contributions. Lastly, cryptography experts may share their own cryptographic components so that they can be used by its users.
 Bug Reports and Feature Requests  In case you find a bug or have an idea for a feature, please check out CogniCrypt&rsquo;s issue tracker.">
-<meta property="og:description" content="There are several opportunities for non-project-members to contribute to CogniCrypt: * CogniCrypt users may contribute Bug Reports and Feature Requests.
-* Regular developers who take interest in CogniCrypt may provide bug fixes and other kind of code contributions. * Lastly, cryptography experts may share their own cryptographic components so that they can be used by CogniCrypt users.
+<meta property="og:description" content="There are several opportunities for non-project-members to contribute to CogniCrypt. CognICrypt users may contribute bug reports and feature requests. Regular developers who take interest in CogniCrypt may provide bug fixes and other kind of code contributions. Lastly, cryptography experts may share their own cryptographic components so that they can be used by its users.
 Bug Reports and Feature Requests  In case you find a bug or have an idea for a feature, please check out CogniCrypt&rsquo;s issue tracker.">
-<meta name="twitter:description" content="There are several opportunities for non-project-members to contribute to CogniCrypt: * CogniCrypt users may contribute Bug Reports and Feature Requests.
-* Regular developers who take interest in …">
+<meta name="twitter:description" content="There are several opportunities for non-project-members to contribute to CogniCrypt. CognICrypt users may contribute bug reports and feature requests. Regular developers who take interest in …">
 <meta name="author" content="Eclipse Foundation"/>
 <link href='https://www.eclipse.org/cognicrypt/favicon.ico' rel='icon' type='image/x-icon'/>
 <meta name="twitter:card" content="summary" />
@@ -236,53 +233,44 @@
         <div class="col-md-10">
     		
 
-<p>There are several opportunities for non-project-members to contribute to CogniCrypt:
-* CogniCrypt users may contribute <strong>Bug Reports</strong> and <strong>Feature Requests</strong>.<br />
-* Regular developers who take interest in CogniCrypt may provide <strong>bug fixes</strong> and other kind of <strong>code contributions</strong>.
-* Lastly, cryptography experts may share their own <strong>cryptographic components</strong> so that they can be used by CogniCrypt users.</p>
+<p>There are several opportunities for non-project-members to contribute to CogniCrypt. CognICrypt users may contribute bug reports and feature requests. Regular developers who take interest in CogniCrypt may provide bug fixes and other kind of code contributions. Lastly, cryptography experts may share their own cryptographic components so that they can be used by its users.</p>
 
 <h1 id="bug-reports-and-feature-requests-a-name-bugs-a">Bug Reports and Feature Requests <a name="bugs"></a></h1>
 
-<p>In case you find a bug or have an idea for a feature, please check out <a href="https://github.com/CROSSINGTUD/CogniCrypt/issues">CogniCrypt&rsquo;s issue tracker</a>. If your problem or request is not yet being addressed there, please file a <a href="https://github.com/CROSSINGTUD/CogniCrypt/issues/new/choose">new issue</a>.</p>
+<p>In case you find a bug or have an idea for a feature, please check out <a href="https://github.com/CROSSINGTUD/CogniCrypt/issues">CogniCrypt&rsquo;s issue tracker</a>. If your AAproblem or request is not yet being addressed there, please file a <a href="https://github.com/CROSSINGTUD/CogniCrypt/issues/new/choose">new issue</a>.</p>
 
 <h1 id="code-contributions-a-name-code-a">Code Contributions <a name="code"></a></h1>
 
-<p>Any contributions - no matter whether they are bug fixes or new features - are very welcome. That being said, since CogniCrypt is an official Eclipse project, only official committers may contribute directly to the repository without any review. Commits from non-committers are possible, but must be reviewed by someone with committer status and come in a certain form, described by the <a href="https://www.eclipse.org/projects/handbook/#resources-commit">Eclipse manual</a>. In short, apart from the usual <em>author</em> tag, each commit needs to come with a <em>signed-off-by</em> tag at the bottom of the commit message. Pull requests that contain commits from non-committers not following this structure may not be accepted. Note: Regular long-time contributors who wish to continue contributing may apply to project-committer status.</p>
+<p>Any contributions - no matter whether they are bug fixes or new features - are very welcome. That said, since CogniCrypt is an official Eclipse project, only official committers may contribute directly to the repository without any review. Commits from non-committers are possible, but must be reviewed by someone with committer status and come in a certain form, described by the <a href="https://www.eclipse.org/projects/handbook/#resources-commit">Eclipse manual</a>. In short, apart from the usual <em>author</em> tag, each commit needs to come with a <em>signed-off-by</em> tag at the bottom of the commit message. Pull requests that contain commits from non-committers not following this structure may not be accepted. Note: Regular long-time contributors who wish to continue contributing and may apply to project-committer status.</p>
 
 <h1 id="cryptographic-components">Cryptographic Components</h1>
 
-<p>In general, crypto experts can contribute in two ways:
-* First, they can contribute support for new cryptographic primitives (e.g., encryption schemes, key agreement algorithms, digital signature algorithms).
-* Second, they can integrate new cryptographic use cases for CogniCrypt to offer to the users for code generation.</p>
+<p>In general, crypto experts can contribute in two ways. First, they can contribute support for new cryptographic primitives (e.g., encryption schemes, key agreement algorithms, digital signature algorithms). Second, they can integrate new cryptographic use cases for CogniCrypt to offer to to users for code generation. In the context of CogniCrypt, these use cases are called tasks. Examples for cryptographic tasks that CogniCrypt already supports  include file encryption, communication over secure channel, and user authentication mechanisms. Depending on how a task is integrated, it can use primitives that have been integrated before, but primitives are not directly exposed to the end user. For easier distinction, this guide separates contributing crypto experts into primitives developers and task developers. CogniCrypt users are being refered to as developers.</p>
 
-<p>In the context of CogniCrypt, these use cases are called <strong>tasks</strong>. Examples for cryptographic tasks that CogniCrypt already supports  include:  <strong>file encryption</strong>, <strong>communication over secure channel</strong>, and <strong>user authentication mechanisms</strong>. Depending on how a task is integrated, it can use primitives that have been integrated before. However primitives are not directly exposed to the end user. For easier distinction, this guide separates:
-* Contributing crypto experts into: <strong>primitives developers</strong> and <strong>task developers</strong>.
-* CogniCrypt users are being refered to as <strong>developers</strong>.</p>
-
-<p>In order to integrate a new primitive/task, two components need to be provided:</p>
+<p>In order to integrate a new primitive/task, two components need to be provided.</p>
 
 <ul>
 <li>Implementation</li>
 <li>Usage rules</li>
 </ul>
 
-<p>The implementation should encompass the full functionality of the primitive/task. To both <a href="../documentation/code-analysis">prevent developers from misusing a primitive/task</a> and <a href="../documentation/code-generation">facilitate the code generation for tasks</a>, usage rules describe how a task and/or a primitive is supposed to be used.</p>
+<p>The implementation should encompass the full functionality of the primitive/task. To both <a href="../documentation/code-analysis">prevent developers from misusing a primitive/task</a> and <a href="../documentation/code-generation">facilitate the code generation for tasks</a>, usage rules describe how a task and or primitive is supposed to be used.</p>
 
 <h2 id="integrating-primitives-a-name-prim-a">Integrating Primitives <a name="prim"></a></h2>
 
-<h3 id="implementation">Implementation:</h3>
+<h3 id="implementation">Implementation</h3>
 
-<p>Primitives need to be implemented as <a href="https://docs.oracle.com/javase/9/security/howtoimplaprovider.htm#JSSEC-GUID-C485394F-08C9-4D35-A245-1B82CDDBC031">Cryptographic Service Providers (CSP)</a> in Java. The JDK does not simply provide a set of implementations of cryptographic primitives to its users. Instead, a set of standardized and algorithm-specific interfaces is provided by the <a href="https://docs.oracle.com/javase/9/security/java-cryptography-architecture-jca-reference-guide.htm#JSSEC-GUID-2BCFDD85-D533-4E6C-8CE9-29990DEB0190">Java Cryptography Architecture(JCA)</a>. These interfaces must then be implemented by CSPs in order to provide cryptographic primitives to an application developer. With this design, the architecture around cryptography is made both independent of algorithms and implementations, as well as easily extensible. It enables primitives developers to implement their own algorithms as CSPs and plug them into the JCA. One CSP may include multiple primitives of multiple algorithm types.</p>
+<p>Primitives need to be implemented as <a href="https://docs.oracle.com/javase/9/security/howtoimplaprovider.htm#JSSEC-GUID-C485394F-08C9-4D35-A245-1B82CDDBC031">Cryptographic Service Providers (CSP)</a> in Java. The JDK does not simply provide a set of implementations of cryptographic primitives to its users. Instead, a set of standardized and algorithm-specific interfaces is provided by the <a href="https://docs.oracle.com/javase/9/security/java-cryptography-architecture-jca-reference-guide.htm#JSSEC-GUID-2BCFDD85-D533-4E6C-8CE9-29990DEB0190">Java Cryptography Architecture(JCA)</a>. These interfaces must then be implemented by CSPs in order to provide cryptographic primitives to an application developer. With this design, the architecture around cryptography is made both independent of algorithms and implementations as well as easily extensible. It enables primitives developers to implement their own algorithms as CSPs and plug them into the JCA. One CSP may include multiple primitives of multiple algorithm types.</p>
 
 <p>The JCA comes with a <a href="https://docs.oracle.com/javase/9/security/oracleproviders.htm#JSSEC-GUID-FE2D2E28-C991-4EF9-9DBE-2A4982726313">number of default providers</a> that implement the most common cryptographic algorithms in several configurations. <a href="https://www.bouncycastle.org/java.html">BouncyCastle</a>, another cryptographic library for Java, can also be used <a href="https://www.bouncycastle.org/wiki/display/JA1/Provider+Installation">as a CSP</a>. It implements a wide range of cryptographic algorithms and configurations, including the ones implemented by the default CSPs.</p>
 
-<p>During runtime, the Java Virtual Machine (JVM) maintains an ordered list of all plugged-in CSPs. As illustrated in the figure below, when an algorithm in a certain configuration is requested by some application code, the JVM iterates through the list and asks each provider if it supports the requested algorithm and configuration. In case several CSPs support the same configuration, the implementation of the first CSP in the list to support the configuration is selected.</p>
+<p>During runtime, the Java Virtual Machine (JVM) maintains an ordered list of all plugged in CSPs. As illustrated in the figure below, when an algorithm in a certain configuration is requested by some application code, the JVM iterates through the list and asks each provider if it supports the requested algorithm and configuration. In case several CSPs support the same configuration, the implementation of the first CSP in the list to support the configuration is selected.</p>
 
 <p><img src="https://docs.oracle.com/javase/9/security/img/architecture-service-provider-interface.gif" alt="JCA plug and play" /></p>
 
-<h3 id="usage-rules">Usage Rules:</h3>
+<h3 id="usage-rules">Usage Rules</h3>
 
-<p>Furthermore, developers of primitives should provide usage rules for their CSP. Any component may be misused and each and every such misuse within a security context leads to a potential security vulnerability. To illustrate the necessity for such rules, consider the following two examples. The code snippet in the Listing below is a simple example of a symmetric encryption using the JCA. The call in <em>Line 2</em> instantiates an object of class <code>Cipher</code>, which is using the symmetric block cipher <strong>AES</strong>. Although not obvious at first glance, method <code>getInstance()</code> does in fact not expect a single algorithm, but instead a<code>transformation</code> consisting of <strong>cipher</strong>, <strong>mode of operation</strong> and <strong>padding scheme</strong>. If the latter two are not provided by the developer (as in the code snippet below), the exact behaviour depends on the selected CSP. The default CSP of the JCA selects ECB as mode of operation by default. Unfortunately, in ECB mode, identical plaintext blocks are encrypted to identical ciphertext blocks. Consequently, any encryption of more than one block using this configuration is deemed insecure. To prevent such misuses, contributors may specify how to use their CSP correctly and securely.</p>
+<p>Furthermore, developers of primitives should provide usage rules for their CSP. Any component may be misused and each and every such misuse within a security context leads a potential security vulnerability. To illustrate the necessity for such rules, consider the following two examples. The code snippet in Listing~\ref{lst:enc} is a simple example of a symmetric encryption using the JCA. The call in Line 2 instantiates an object of class <code>Cipher</code>, which is using the symmetric block cipher AES. Although not obvious at first glance, method <code>getInstance()</code> does in fact not expect a single algorithm, but instead a<code>transformation</code> consisting of cipher, mode of operation and padding scheme. If the latter two are not provided by the developer (as in the code snippet below), the exact behaviour depends on the selected CSP. The default CSP of the JCA selects ECB as mode of operation by default. Unfortunately, in ECB mode, identical plaintext blocks are encrypted to identical ciphertext blocks. Consequently, any encryption of more than one block using this configuration is deemed insecure. To prevent such misuses, contributors may specify how to use their CSP correctly and securely.</p>
 
 <pre><code>public byte[] encrypt(byte[] secret, SecretKey key) {
     Cipher ciph = new Cipher.getInstance(&quot;AES&quot;); 
@@ -301,11 +289,11 @@
 
 <h3 id="implementation-1">Implementation</h3>
 
-<p>The implementation for a task may be provided to CogniCrypt as source code or a jar file. In this case, application developers get direct access to the code. If task developers do not wish to share the source code, they may provide access to the task&rsquo;s functionality indirectly through an API. Suppose a task developer wants to offer long-term document archiving as a cryptographic task in CogniCrypt. An archive requires the documents to be stored on a hard-disk. To not require the user to manage these files on their own, the task developer offers their archive as a web service that stores the documents on their server. In this case, the task developer does not have to provide any implementation directly to CogniCrypt. A task developer may choose to let the application developer configure the task in terms of used algorithms among other things. This configuration is done through the dialogue system after the CogniCrypt user selects a task they want to implement.</p>
+<p>The implementation for a task may be provided to CogniCrypt as source code or a jar file. In this case, application developers get direct access to the code. If task developers do not wish to share the source code, they may provide access to the task&rsquo;s functionality indirectly through an API. Suppose a task developer wants to offer long-term document archiving as a cryptographic task in CogniCrypt. An archive requires the documents to stored on a hard-disk. To not require the user to manage these files on their own, the task developer offers their archive as a web service that stores the documents on their server. In this case, the task developer does not have to provide any implementation directly to CogniCrypt. A task developer may choose to let the application developer configure the task in terms of used algorithms among other things. This configuration is done through the dialogue system after the CogniCrypt user selects a task they want to implement.</p>
 
 <h3 id="usage-rules-1">Usage Rules</h3>
 
-<p>Task developers must further provide usage rules for this component. CogniCrypt then automatically and continuously applies static analyses based on these rules in the background to ensure the code stays secure. These usage rules have to be provided in the specification language <a href="../documentation/crysl">CrySL</a>.</p>
+<p>Task developers must further provide usage rules for component. CogniCrypt then automatically and continuously applies static analyses based on these rules in the background to ensure the code stays secure. These usage rules have to be provided in the specification language <a href="../documentation/crysl">CrySL</a>.</p>
 
 <h3 id="configuration-questions">Configuration Questions</h3>
 
