diff --git a/acme4j-it/src/main/java/module-info.java b/acme4j-it/src/main/java/module-info.java
index 77f3c153..eda2402e 100644
--- a/acme4j-it/src/main/java/module-info.java
+++ b/acme4j-it/src/main/java/module-info.java
@@ -19,4 +19,6 @@ module org.shredzone.acme4j.it {
requires com.github.spotbugs.annotations;
requires org.apache.httpcomponents.httpclient;
requires org.apache.httpcomponents.httpcore;
+
+ exports org.shredzone.acme4j.it;
}
diff --git a/src/doc/docs/development/provider.md b/src/doc/docs/development/provider.md
index cb87e4ef..9489eef7 100644
--- a/src/doc/docs/development/provider.md
+++ b/src/doc/docs/development/provider.md
@@ -18,7 +18,7 @@ Every CA that provides an ACME server should also have an own `AcmeProvider`, an
However, it is also possible to adapt the behavior of wide parts of _acme4j_ to special characteristics of the CA, just by overriding methods and extending classes.
-A client provider implements the [`AcmeProvider`](../apidocs/org/shredzone/acme4j/provider/AcmeProvider.html) interface, but usually it is easier to extend [`AbstractAcmeProvider`](../apidocs/org/shredzone/acme4j/provider/AbstractAcmeProvider.html) and implement only these two methods:
+A client provider implements the [`AcmeProvider`](../acme4j-client/apidocs/org.shredzone.acme4j/org/shredzone/acme4j/provider/AcmeProvider.html) interface, but usually it is easier to extend [`AbstractAcmeProvider`](../acme4j-client/apidocs/org.shredzone.acme4j/org/shredzone/acme4j/provider/AbstractAcmeProvider.html) and implement only these two methods:
* `accepts(URI)` checks if the client provider is accepting the provided URI. Usually it would be an URI like `acme://example.com`. Note that the `http` and `https` schemes are reserved for the generic provider and cannot be used by other providers.
* `resolve(URI)` parses the URI and returns the corresponding URL of the directory service.
diff --git a/src/doc/docs/index.md b/src/doc/docs/index.md
index 2b72f46c..06868f95 100644
--- a/src/doc/docs/index.md
+++ b/src/doc/docs/index.md
@@ -60,7 +60,7 @@ acme4j-example
: This module only contains [an example code](example.md) that demonstrates how to get a certificate with _acme4j_. It depends on `acme4j-client` and `acme4j-utils`. It is not useful as a dependency in other projects.
acme4j-it
-: [`acme4j-it`](https://mvnrepository.com/artifact/org.shredzone.acme4j/acme4j-it/latest) mainly serves as integration test suite for _acme4j_ itself. It is not really useful as a dependency in other projects. However if you write own integration tests using [pebble](https://github.com/letsencrypt/pebble) and [pebble-challtestsrv](https://hub.docker.com/r/letsencrypt/pebble-challtestsrv), you may find the [`challtestsrv` configuration client](https://shredzone.org/maven/acme4j/acme4j-it/apidocs/org/shredzone/acme4j/it/BammBammClient.html) useful in your project.
+: [`acme4j-it`](https://mvnrepository.com/artifact/org.shredzone.acme4j/acme4j-it/latest) mainly serves as integration test suite for _acme4j_ itself. It is not really useful as a dependency in other projects. However if you write own integration tests using [pebble](https://github.com/letsencrypt/pebble) and [pebble-challtestsrv](https://hub.docker.com/r/letsencrypt/pebble-challtestsrv), you may find the [`challtestsrv` configuration client](acme4j-it/apidocs/org.shredzone.acme4j.it/org/shredzone/acme4j/it/BammBammClient.html) useful in your project.
The Java module name is `org.shredzone.acme4j.it`.
diff --git a/src/doc/docs/usage/order.md b/src/doc/docs/usage/order.md
index f346c6f6..7a4d6906 100644
--- a/src/doc/docs/usage/order.md
+++ b/src/doc/docs/usage/order.md
@@ -77,7 +77,7 @@ The response you have set up before is not needed any more. You can (and should)
After successfully completing all authorizations, the order needs to be finalized by providing PKCS#10 CSR file. A single domain may be set as _Common Name_. Multiple domains must be provided as _Subject Alternative Name_. You must provide exactly the domains that you had passed to the `order()` method above, otherwise the finalization will fail. It depends on the CA if other CSR properties (_Organization_, _Organization Unit_ etc.) are accepted. Some may require these properties to be set, while others may ignore them when generating the certificate.
-CSR files can be generated with command line tools like `openssl`. Unfortunately the standard Java does not offer classes for that, so you'd have to resort to [Bouncy Castle](http://www.bouncycastle.org/java.html) if you want to create a CSR programmatically. In the `acme4j-utils` module, there is a [`CSRBuilder`](../apidocs/org/shredzone/acme4j/util/CSRBuilder.html) for your convenience. You can also use [`KeyPairUtils`](../apidocs/org/shredzone/acme4j/util/KeyPairUtils.html) for generating a new key pair for your domain.
+CSR files can be generated with command line tools like `openssl`. Unfortunately the standard Java does not offer classes for that, so you'd have to resort to [Bouncy Castle](http://www.bouncycastle.org/java.html) if you want to create a CSR programmatically. In the `acme4j-utils` module, there is a [`CSRBuilder`](../acme4j-utils/apidocs/org.shredzone.acme4j.utils/org/shredzone/acme4j/util/CSRBuilder.html) for your convenience. You can also use [`KeyPairUtils`](../acme4j-utils/apidocs/org.shredzone.acme4j.utils/org/shredzone/acme4j/util/KeyPairUtils.html) for generating a new key pair for your domain.
!!! tip
Never use your account key pair as domain key pair, but always generate separate key pairs!
diff --git a/src/doc/docs/usage/session.md b/src/doc/docs/usage/session.md
index 485b549b..69be9fe5 100644
--- a/src/doc/docs/usage/session.md
+++ b/src/doc/docs/usage/session.md
@@ -1,6 +1,6 @@
# Creating a Session
-Central part of the communication is a [`Session`](../apidocs/org/shredzone/acme4j/Session.html) object. A session is used to track the communication with the ACME server.
+Central part of the communication is a [`Session`](../acme4j-client/apidocs/org.shredzone.acme4j/org/shredzone/acme4j/Session.html) object. A session is used to track the communication with the ACME server.
The first step is to create a `Session` instance. The `Session` constructor expects the URI of the ACME server's directory service, as it is documented by the CA. For example, this is how to connect to the _Let's Encrypt_ staging server:
diff --git a/src/doc/theme/main.html b/src/doc/theme/main.html
index 84629cea..f24ff891 100644
--- a/src/doc/theme/main.html
+++ b/src/doc/theme/main.html
@@ -12,5 +12,5 @@
{% endblock %}
{% block repo %}
-API javadocs
+API javadocs
{% endblock %}