diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/AudienceRegistry.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/AudienceRegistry.java
index 05a70e687dd300b691d5da96fc296e03f276d982..0c41aa00159f149cf9f75b1069ab963a3508bce4 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/AudienceRegistry.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/AudienceRegistry.java
@@ -2,8 +2,16 @@ package net.ihe.gazelle.app.accesstokenproviderapi.adapter.webservice;
 
 import net.ihe.gazelle.app.accesstokenproviderapi.business.Credential;
 
+/**
+ * Interface to interact with the audience registry where is store all known audience with their credential
+ */
 public interface AudienceRegistry {
 
+    /**
+     * Get credential's audience
+     * @param audienceId
+     * @return credential
+     */
     Credential getAudienceCredentials(String audienceId);
 
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/DummyAuthzServer.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/DummyAuthzServer.java
index e457811515b8b87409b8c9a587583839c432f846..27f6de6fe11245f40135c2267f3e87bf140aea7f 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/DummyAuthzServer.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/DummyAuthzServer.java
@@ -1,7 +1,18 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.adapter.webservice;
 
+/**
+ * For SoapUI integration need, a simplified Authorization Server (or IDP) is required.
+ */
 public interface DummyAuthzServer {
 
+    /**
+     * get a dummy access token
+     * @param userId
+     * @param audienceId
+     * @param purposeOfUser
+     * @param resourceId
+     * @return an access token
+     */
     byte[] getAccessToken(String userId, String audienceId, String purposeOfUser, String resourceId);
 
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TestUserRegistry.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TestUserRegistry.java
index 94e0de2072e0a9bff872a176c367625fb0610099..3477a8885364822bcbf6b2953573e34ad925886d 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TestUserRegistry.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TestUserRegistry.java
@@ -2,8 +2,15 @@ package net.ihe.gazelle.app.accesstokenproviderapi.adapter.webservice;
 
 import net.ihe.gazelle.app.accesstokenproviderapi.business.testuser.TestUser;
 
+/**
+ * Interface to interact with the test-users’ database for authentication step and token content
+ */
 public interface TestUserRegistry {
 
+    /**
+     * @param userId
+     * @return TestUser
+     */
     TestUser getTestUser(String userId);
 
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TokenGenerator.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TokenGenerator.java
index d597ea6e5100f6bee78344373a2796b26788b005..0be087f904facb15eb002cce87222927b6eb8f70 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TokenGenerator.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/adapter/webservice/TokenGenerator.java
@@ -3,8 +3,16 @@ package net.ihe.gazelle.app.accesstokenproviderapi.adapter.webservice;
 import net.ihe.gazelle.app.accesstokenproviderapi.business.AccessTokenRequest;
 import net.ihe.gazelle.sb.iua.business.EncodedIUAToken;
 
+/**
+ * Interface to interact with the access token generator
+ */
 public interface TokenGenerator {
 
+    /**
+     * generate an access token from an access token request
+     * @param accessTokenRequest
+     * @return EncodedIUAToken
+     */
     EncodedIUAToken generateAccessToken(AccessTokenRequest accessTokenRequest);
 
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenExtension.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenExtension.java
index f38b23dc277fa983e1df8f67f6f88170004538a3..cd92b50c67f8c55d80175dad59ebba560cb60c1e 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenExtension.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenExtension.java
@@ -3,6 +3,9 @@ package net.ihe.gazelle.app.accesstokenproviderapi.business;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Extensions for the Access Token
+ */
 public class AccessTokenExtension {
 
     private String subjectId;
@@ -208,6 +211,9 @@ public class AccessTokenExtension {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -231,6 +237,9 @@ public class AccessTokenExtension {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         int result = subjectId != null ? subjectId.hashCode() : 0;
         result = 31 * result + (subjectOrganizations != null ? subjectOrganizations.hashCode() : 0);
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenRequest.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenRequest.java
index 596a1ac572f5da81f362881391375e75e784132b..d1dfad1ed718c4a314453a92814d3f0d84e246b3 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenRequest.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AccessTokenRequest.java
@@ -4,6 +4,9 @@ import net.ihe.gazelle.sb.iua.business.TokenType;
 
 import java.time.Duration;
 
+/**
+ * The Access Token request
+ */
 public class AccessTokenRequest {
 
     private String issuer;
@@ -107,6 +110,9 @@ public class AccessTokenRequest {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -123,6 +129,9 @@ public class AccessTokenRequest {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         int result = issuer.hashCode();
         result = 31 * result + subject.hashCode();
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
index 616fa0aabc15a0e44f408ee3984202de21188492..d3f30203de4c1cf83289bcdfe54a85e6d096ea76 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/AsymmetricSignature.java
@@ -2,6 +2,9 @@ package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
 import java.util.Arrays;
 
+/**
+ * Asymmetric signature information of the access token
+ */
 public class AsymmetricSignature extends Signature {
 
     private byte[] privateKey;
@@ -33,6 +36,9 @@ public class AsymmetricSignature extends Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -45,6 +51,9 @@ public class AsymmetricSignature extends Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         int result = Arrays.hashCode(privateKey);
         result = 31 * result + privateKeyPassword.hashCode();
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/CodedValue.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/CodedValue.java
index fa429f69e3ae7485d96965e754c4b10b86687743..ebd7e365c497b4eab5b7444c4af6ff0fd195e9bc 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/CodedValue.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/CodedValue.java
@@ -1,5 +1,8 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
+/**
+ * A Coded value
+ */
 public class CodedValue {
 
     private String code;
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
index 7014be5df9a808ee88a40513f9e9079d7cb5a938..cb7789cee54d0df2909d9073df1444858d5739f6 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Credential.java
@@ -1,4 +1,7 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
+/**
+ * Credential for an audience
+ */
 public abstract class Credential {
 }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
index 4265f783f5e9e86d9b03c09ea28af176ef1fb169..7123a182d92aebecfc6f86fc9bd5f78b599c7656 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Password.java
@@ -2,6 +2,9 @@ package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
 import java.util.Arrays;
 
+/**
+ * A password
+ */
 public class Password extends Credential {
 
     private byte[] value;
@@ -22,6 +25,9 @@ public class Password extends Credential {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -32,6 +38,9 @@ public class Password extends Credential {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         return Arrays.hashCode(value);
     }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
index c39edfd001f36d0746d7957fb9406ec2947b6066..2803b5b9cbe33305368cc87a7cb00e0ec4ff7bbe 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/PublicKey.java
@@ -2,6 +2,9 @@ package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
 import java.util.Arrays;
 
+/**
+ * A public key
+ */
 public class PublicKey extends Credential {
     private byte[] key;
 
@@ -21,6 +24,9 @@ public class PublicKey extends Credential {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -31,6 +37,9 @@ public class PublicKey extends Credential {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         return Arrays.hashCode(key);
     }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Signature.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Signature.java
index 50515e6a6061581ec2380f0515276b5c2d7fdc30..ec065fc59c883571956776052d626bda93d4663f 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Signature.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/Signature.java
@@ -1,5 +1,9 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
+
+/**
+ * Signature information of the access token
+ */
 public abstract class Signature {
 
     private String algorithm;
@@ -20,6 +24,9 @@ public abstract class Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -30,6 +37,9 @@ public abstract class Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         return algorithm.hashCode();
     }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/SymmetricSignature.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/SymmetricSignature.java
index 7e8c8117fb120c216f5b6890b72e5d71c6466afe..31628baae5de12ccbdcb0762a2f4e4f778af00db 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/SymmetricSignature.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/SymmetricSignature.java
@@ -1,5 +1,8 @@
 package net.ihe.gazelle.app.accesstokenproviderapi.business;
 
+/**
+ * Symmetric signature information of the access token
+ */
 public class SymmetricSignature extends Signature {
 
     private String secret;
@@ -21,6 +24,9 @@ public class SymmetricSignature extends Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -32,6 +38,9 @@ public class SymmetricSignature extends Signature {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         return secret.hashCode();
     }
diff --git a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
index 9b5d454e3cad4ca64b1004feb50f3667f53401f1..321d4eada01514f6fd4fad131b567e52ca20d602 100644
--- a/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
+++ b/access-token-provider-api/src/main/java/net/ihe/gazelle/app/accesstokenproviderapi/business/testuser/TestUser.java
@@ -6,6 +6,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+/**
+ * Test user used for authentication and token content
+ */
 public class TestUser {
 
     private String userId;
@@ -15,6 +18,9 @@ public class TestUser {
     private String gender; //fixme String ?
     private Map<String, String> extensions = new HashMap<>();
 
+    /**
+     * Constructor
+     */
     public TestUser(String userId, List<String> givenNames, String lastName) {
         this.userId = userId;
         this.givenNames = givenNames;
@@ -105,6 +111,9 @@ public class TestUser {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
@@ -120,6 +129,9 @@ public class TestUser {
     }
 
     @Override
+    /**
+     * {@inheritDoc}
+     */
     public int hashCode() {
         int result = userId.hashCode();
         result = 31 * result + givenNames.hashCode();