diff --git a/README.md b/README.md
index a961e35a108b4a5ac0e8e461fc9ebb4536efea06..f9f0560691759fe0dee7dab03ac18a1777d71e1a 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ### Build
 
-To build the maven artifact, run: `mvn clean install`
+To build the maven artifact, run: `mvn clean package`
 
 ####
 
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/AdditionalReferenceInfo.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/AdditionalReferenceInfo.java
index 56460300c5fff3204e8335206edcf5432a3ef240..07e92aadc53f3af2c8d244ce1cbb9b7cde76bf0c 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/AdditionalReferenceInfo.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/AdditionalReferenceInfo.java
@@ -9,10 +9,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-/**
- * Eine Struktur, um zusätzliche Informationen zu hinterlegen
- */
-
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "senderReference",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/ContentStructure.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/ContentStructure.java
index b3ae4bb1bf382ad12e56cc5b139b0df8598bd839..8e06ae6c6d144d63ab4ab5cebe4bc1179cfc5019 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/ContentStructure.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/ContentStructure.java
@@ -12,9 +12,6 @@ import lombok.Setter;
 import java.util.List;
 import java.util.Map;
 
-/**
- * Beschreibt die Struktur der zusätzlichen Inhalte der Einreichung, wie Anlagen oder Fachdaten.
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "data",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/PublicServiceType.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/PublicServiceType.java
index cb06e95d12362a15e23f18c3e93cf893f4498c13..fb29a6d1c50fe39fc0b8beb399d46b736a2ff7ea 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/PublicServiceType.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/PublicServiceType.java
@@ -9,13 +9,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-/**
- * Verwaltungsleistung
- * <p>
- * Beschreibung der Art der Verwaltungsleistung. Eine Verwaltungsleistung sollte immer mit einer LeiKa-Id beschrieben werden.
- * <p>
- * Ist für die gegebene Verwaltungsleistung keine LeiKa-Id vorhanden, kann die Verwaltungsleistung übergangsweise über die Angabe einer anderen eindeutigen Schema-URN beschrieben werden.
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "name",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java
index f26482f7f650267a8519faba38bbf90087c43b01..8147f76647a4629f9dfc44787fcdf26e4e774f33 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java
@@ -12,10 +12,6 @@ import lombok.Setter;
 import java.util.Map;
 import java.util.UUID;
 
-
-/**
- * Eine in der Einreichung enthaltene Anlage.
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "hash",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Purpose.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Purpose.java
index 3b2e50565c5e22590caf996b98f287ae0d1a5fbc..a5726ea3875d4c751fbd77058fb39489350ffcb1 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Purpose.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/Purpose.java
@@ -6,12 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Zweck/Art der Anlage
- * - form: Automatisch generierte PDF-Repräsentation des vollständigen Antragsformulars
- * - attachment: Anlage, die von einem Bürger hochgeladen wurde
- * - report: Vom Onlinedienst, nachträglich erzeugte Unterlage
- */
 public enum Purpose {
 
     FORM("form"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/EidasAdesProfile.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/EidasAdesProfile.java
index 767a8071774df7cfb11dc6eb6dfee8e8ce820119..21199aef3400f361a95797a6c6b1ffe13307e63e 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/EidasAdesProfile.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/EidasAdesProfile.java
@@ -6,11 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Referenziert ein eindeutiges Profil einer AdES (advanced electronic signature/seal) gemäß eIDAS-Verordnung über eine URI gemäß [ETSI TS 119 192](https://www.etsi.org/deliver/etsi_ts/119100_119199/119192/01.01.01_60/ts_119192v010101p.pdf).
- * <p>
- * Für die Details zur Verwendung und Validierung von Profilen siehe auch https://ec.europa.eu/cefdigital/DSS/webapp-demo/doc/dss-documentation.html#_signatures_profile_simplification
- */
 public enum EidasAdesProfile {
 
     HTTP_URI_ETSI_ORG_ADES_191_X_2_LEVEL_BASELINE_B_B("http://uri.etsi.org/ades/191x2/level/baseline/B-B#"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java
index 78ad80e7e343b998d4f454c7937e605b34543513..3522e8d5dfacbf4535829abe9df90b9932a87539 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java
@@ -9,12 +9,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-/**
- * Hashwert
- * <p>
- * Der Hashwert der unverschlüsselten Anlage.
- * Die Angabe des Hashwertes dient der Integritätssicherung des Gesamtantrags und schützt vor einem Austausch der Anlage durch Systeme zwischen Sender und Subscriber (z.B. dem Zustelldienst).
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "type",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/SignatureFormat.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/SignatureFormat.java
index 6f15103879e610477b0e821bfe9e0eaae09317dd..b9c613efe91ad281f4ead385a3652a66d0287846 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/SignatureFormat.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/SignatureFormat.java
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Beschreibt, welches Signaturformat die genutzte Signatur / das genutzte Siegel nutzt. Aktuell wird die Hinterlegung folgender Signaturformate unterstützt: CMS = Cryptographic Message Syntax, Asic = Associated Signature Containers, PDF = PDF Signatur, XML = XML-Signature, JSON = JSON Web Signature.
- */
 public enum SignatureFormat {
 
     CMS("cms"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java
index de42b349f77504d7b02cfc9ae6d82cec68349059..b2288869acc3be85a2ec6d2b4bb5bdd2d4ad211a 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java
@@ -10,9 +10,6 @@ import lombok.Setter;
 import java.util.Map;
 
 
-/**
- * Beschreibt das Signaturformt und Profile
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "signatureFormat",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Type.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Type.java
index 16257d48e65d233f4c31f812d98dab7d81d9c551..17b4660ee90a83fe8f0773d353b75b597f85c6fa 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Type.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Type.java
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.
- */
 public enum Type {
 
     SHA_512("sha512");
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Data.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Data.java
index d83e7c4410e6c79a60cefbb091dac897138c7abc..58e9dc5d86a6be92f44055ce3e1394759694b80e 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Data.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Data.java
@@ -10,9 +10,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-/**
- * Definiert das Schema und die Signatur(-art), die für die Fachdaten verwendet werden.
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "signature",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/EidasAdesProfile.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/EidasAdesProfile.java
index 339f9b7ac50d3adfa797b5d683a3e999eab4d2ab..fc8843b28eb31a9b6e4ac09052f3ce3e12d35dfb 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/EidasAdesProfile.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/EidasAdesProfile.java
@@ -6,11 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Referenziert ein eindeutiges Profil einer AdES (advanced electronic signature/seal) gemäß eIDAS-Verordnung über eine URI gemäß [ETSI TS 119 192](https://www.etsi.org/deliver/etsi_ts/119100_119199/119192/01.01.01_60/ts_119192v010101p.pdf).
- * <p>
- * Für die Details zur Verwendung und Validierung von Profilen siehe auch https://ec.europa.eu/cefdigital/DSS/webapp-demo/doc/dss-documentation.html#_signatures_profile_simplification
- */
 public enum EidasAdesProfile {
 
     HTTP_URI_ETSI_ORG_ADES_191_X_2_LEVEL_BASELINE_B_B("http://uri.etsi.org/ades/191x2/level/baseline/B-B#"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Hash.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Hash.java
index 03d99b982c11c526cbed2ac44674793155a075c6..94475c30808ea346a22b1fa2dec4c7e0b6df61bf 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Hash.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Hash.java
@@ -9,12 +9,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-
-/**
- * Hashwert
- * <p>
- * Der Hashwert der unverschlüsselten Fachdaten. Die Angabe des Hashwertes dient der Integritätssicherung des Gesamtantrags und schützt vor einem Austausch der Fachdaten durch Systeme zwischen Sender und Subscriber (z.B. dem Zustelldienst).
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "type",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/MimeType.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/MimeType.java
index b07f19a1145d8441f6f5f6a6de8be55db8ba2e53..cf210d4837c0b4114e00695a3f493123a15b1fa0 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/MimeType.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/MimeType.java
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Mimetype (z.B. application/json oder application/xml) des referenzierten Schemas (z.B. XSD- oder JSON-Schema).
- */
 public enum MimeType {
 
     APPLICATION_JSON("application/json"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Signature.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Signature.java
index 4ccfab279bfd2ade6dfde480562fb5b2ddadae7b..dba35defd74ff1ec7dfe8c1719fa8c87c01dce00 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Signature.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Signature.java
@@ -9,9 +9,6 @@ import lombok.Setter;
 
 import java.util.Map;
 
-/**
- * Beschreibt das Signaturformt und Profile
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "signatureFormat",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SignatureFormat.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SignatureFormat.java
index 47701c30ea63f748da09a008b050df6527567278..e1676eb7bb87c606403680c7637f60d7d95b06fe 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SignatureFormat.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SignatureFormat.java
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Beschreibt, welches Signaturformat die genutzte Signatur / das genutzte Siegel nutzt. Aktuell wird die Hinterlegung folgender Signaturformate unterstützt: CMS = Cryptographic Message Syntax, Asic = Associated Signature Containers, PDF = PDF Signatur, XML = XML-Signature, JSON = JSON Web Signature.
- */
 public enum SignatureFormat {
 
     CMS("cms"),
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SubmissionSchema.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SubmissionSchema.java
index fada0069564e099c1eddb379b213d60ca4a995ee..4d3b62bcdb7676e41bf967987fa80abefaab49ba 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SubmissionSchema.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/SubmissionSchema.java
@@ -10,12 +10,6 @@ import lombok.Setter;
 import java.net.URI;
 import java.util.Map;
 
-
-/**
- * Fachdatenschema
- * <p>
- * Referenz auf ein Schema, das die Struktur der Fachdaten einer Einreichung beschreibt.
- */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
         "schemaUri",
diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Type.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Type.java
index e6b1d5688a1997fe558b444f836f51f7900feeea..060804d68bd84425a334e5d890f1aa5afa497dda 100644
--- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Type.java
+++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/metadata/data/Type.java
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonValue;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.
- */
 public enum Type {
 
     SHA_512("sha512");
diff --git a/client/README.md b/client/README.md
index b243904dc304e154d51209ee1cf0ca13e96df049..360a90d897abacdb4e03d8bee7f2c4524c7892b4 100644
--- a/client/README.md
+++ b/client/README.md
@@ -3,17 +3,17 @@
 ### API Flow
 The SdkClientFactory provides fluent API client both for **Sender** and **Subscriber**.
 
-As the flow chart belwo shows, the fluent client ntercae guide you through all essentials calls
-in order to hand in a **Submission**.
+As the flow chart below shows, the fluent client guides through all essentials calls
+in order to hand in a correct **Submission**.
 
 #### Api client flow for sending a submission
 
 ```mermaid
 flowchart LR
 
-A[retrieveOAuthToken] --> B(Upload)
-B -->|uploadAttachment| C[Result 1]
-B -->|uploadData| D[Result 2]
+A[retrieveOAuthToken] --> B(Upload Attachements)
+B -->|encrypt Attachments| C[Create Submission] 
+B -->|upload Attachments| C[Result 2]
 ```
 
 #### Api client flow for subscribing to a submission
diff --git a/client/src/main/java/de/fitko/fitconnect/cmd/CommandLineRunner.java b/client/src/main/java/de/fitko/fitconnect/cmd/CommandLineRunner.java
index 9145ff801a6a9179437d57fb4e06bf097559370b..fae9f0351ea151ab3edd74dbfa3c2cbefe3e1d9d 100644
--- a/client/src/main/java/de/fitko/fitconnect/cmd/CommandLineRunner.java
+++ b/client/src/main/java/de/fitko/fitconnect/cmd/CommandLineRunner.java
@@ -3,6 +3,8 @@ package de.fitko.fitconnect.cmd;
 import com.beust.jcommander.JCommander;
 import de.fitko.fitconnect.client.SenderClient;
 
+import java.util.Optional;
+
 public class CommandLineRunner {
 
     public static void main(String[] args) {