diff --git a/api/src/main/java/fitconnect/api/domain/metadata/AdditionalReferenceInfo.java b/api/src/main/java/fitconnect/api/domain/metadata/AdditionalReferenceInfo.java
index b55e7df9eb812b101dcb59da588878e2d94eb65b..c694fefd38f4c7de988b39fa9f1efbb49688f720 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/AdditionalReferenceInfo.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/AdditionalReferenceInfo.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
@@ -16,15 +18,17 @@ import java.util.Map;
         "senderReference",
         "applicationDate"
 })
-public record AdditionalReferenceInfo(
+@Getter
+@Setter
+public class AdditionalReferenceInfo {
 
-        @JsonProperty("senderReference")
-        String senderReference,
+    @JsonProperty("senderReference")
+    String senderReference;
 
-        @JsonProperty("applicationDate")
-        String applicationDate,
+    @JsonProperty("applicationDate")
+    String applicationDate;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/AuthenticationInformation.java b/api/src/main/java/fitconnect/api/domain/metadata/AuthenticationInformation.java
index e20ceb3e3287d5c1e076a53c3e1bf5b40ab6598a..6dc93fd9bd3915497c8873fc04189d87ce2dc65d 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/AuthenticationInformation.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/AuthenticationInformation.java
@@ -1,4 +1,9 @@
 package fitconnect.api.domain.metadata;
 
-public record AuthenticationInformation() {
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class AuthenticationInformation {
 }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/ContentStructure.java b/api/src/main/java/fitconnect/api/domain/metadata/ContentStructure.java
index a25a9f89eaafbf0d8fd86a6cccf8c38e3cc39efa..093f78e4d755a8e84f62376c10da22a81736a7c2 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/ContentStructure.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/ContentStructure.java
@@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import fitconnect.api.domain.metadata.attachment.Attachment;
 import fitconnect.api.domain.metadata.data.Data;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.List;
 import java.util.Map;
@@ -18,14 +20,16 @@ import java.util.Map;
         "data",
         "attachments"
 })
-public record ContentStructure(
+@Getter
+@Setter
+public class ContentStructure {
 
-        @JsonProperty("data")
-        Data data,
+    @JsonProperty("data")
+    Data data;
 
-        @JsonProperty("attachments")
-        List<Attachment> attachments,
+    @JsonProperty("attachments")
+    List<Attachment> attachments;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/Metadata.java b/api/src/main/java/fitconnect/api/domain/metadata/Metadata.java
index 889f0c4656d5f64fe673ab43fb06bcce4b88fd15..4af121a2c5bf1f06896b8d671f52cbcb57e8090f 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/Metadata.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/Metadata.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.List;
 import java.util.Map;
@@ -17,26 +19,28 @@ import java.util.Map;
         "replyChannel",
         "additionalReferenceInfo"
 })
-public record Metadata(
-        @JsonProperty("contentStructure")
-        ContentStructure contentStructure,
+@Getter
+@Setter
+public class Metadata {
+    @JsonProperty("contentStructure")
+    ContentStructure contentStructure;
 
-        @JsonProperty("publicServiceType")
-        PublicServiceType publicServiceType,
+    @JsonProperty("publicServiceType")
+    PublicServiceType publicServiceType;
 
-        @JsonProperty("authenticationInformation")
-        List<AuthenticationInformation> authenticationInformation,
+    @JsonProperty("authenticationInformation")
+    List<AuthenticationInformation> authenticationInformation;
 
-        @JsonProperty("paymentInformation")
-        PaymentInformation paymentInformation,
+    @JsonProperty("paymentInformation")
+    PaymentInformation paymentInformation;
 
-        @JsonProperty("replyChannel")
-        ReplyChannel replyChannel,
+    @JsonProperty("replyChannel")
+    ReplyChannel replyChannel;
 
-        @JsonProperty("additionalReferenceInfo")
-        AdditionalReferenceInfo additionalReferenceInfo,
+    @JsonProperty("additionalReferenceInfo")
+    AdditionalReferenceInfo additionalReferenceInfo;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/PaymentInformation.java b/api/src/main/java/fitconnect/api/domain/metadata/PaymentInformation.java
index 3e78e452ad3d6dee3beab22c2314d126023dda83..3c911876dffa21fb12162c6a99612047d6a2a4e3 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/PaymentInformation.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/PaymentInformation.java
@@ -1,4 +1,9 @@
 package fitconnect.api.domain.metadata;
 
-public record PaymentInformation() {
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class PaymentInformation {
 }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/PublicServiceType.java b/api/src/main/java/fitconnect/api/domain/metadata/PublicServiceType.java
index d91252768f810e7e3b3f5d989002a2f6f3582f66..e3a915022e6d6d5e59305089e06b31591549e7a9 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/PublicServiceType.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/PublicServiceType.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
@@ -20,18 +22,20 @@ import java.util.Map;
         "description",
         "identifier"
 })
-public record PublicServiceType(
+@Getter
+@Setter
+public class PublicServiceType {
 
-        @JsonProperty("name")
-        String name,
+    @JsonProperty("name")
+    String name;
 
-        @JsonProperty("description")
-        String description,
+    @JsonProperty("description")
+    String description;
 
-        @JsonProperty("identifier")
-        String identifier,
+    @JsonProperty("identifier")
+    String identifier;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/ReplyChannel.java b/api/src/main/java/fitconnect/api/domain/metadata/ReplyChannel.java
index 9384433d09e0f1eff3c480f8d0f170efeaa6b1dc..49802151d96956c9af65f44dbb39aaf11ded5680 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/ReplyChannel.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/ReplyChannel.java
@@ -1,4 +1,9 @@
 package fitconnect.api.domain.metadata;
 
-public record ReplyChannel() {
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ReplyChannel {
 }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/Attachment.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/Attachment.java
index a83ab7b986f6088a41185ae39b3c2fe2fd9295dd..dc2ffca953517f66ee78daab95d9522c15876b4d 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/Attachment.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/Attachment.java
@@ -6,6 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import fitconnect.api.domain.metadata.attachment.signature.Hash__1;
 import fitconnect.api.domain.metadata.attachment.signature.Signature__1;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 import java.util.UUID;
@@ -24,31 +26,33 @@ import java.util.UUID;
         "mimeType",
         "attachmentId"
 })
-public record Attachment(
+@Getter
+@Setter
+public class Attachment {
 
-        @JsonProperty("hash")
-        Hash__1 hash,
+    @JsonProperty("hash")
+    Hash__1 hash;
 
-        @JsonProperty("signature")
-        Signature__1 signature,
+    @JsonProperty("signature")
+    Signature__1 signature;
 
-        @JsonProperty("purpose")
-        Purpose purpose,
+    @JsonProperty("purpose")
+    Purpose purpose;
 
-        @JsonProperty("filename")
-        String filename,
+    @JsonProperty("filename")
+    String filename;
 
-        @JsonProperty("description")
-        String description,
+    @JsonProperty("description")
+    String description;
 
-        @JsonProperty("mimeType")
-        String mimeType,
+    @JsonProperty("mimeType")
+    String mimeType;
 
-        @JsonProperty("attachmentId")
-        UUID attachmentId,
+    @JsonProperty("attachmentId")
+    UUID attachmentId;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/EidasAdesProfile.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/EidasAdesProfile.java
index c601b49bd25c537624ae9d258676a9961bbd0554..a72b5e8f9e0d05e071aa1abf93d8eb8d8e6db3b4 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/EidasAdesProfile.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/EidasAdesProfile.java
@@ -8,9 +8,8 @@ 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 {
 
@@ -22,7 +21,7 @@ public enum EidasAdesProfile {
     private final static Map<String, EidasAdesProfile> CONSTANTS = new HashMap<String, EidasAdesProfile>();
 
     static {
-        for (EidasAdesProfile c: values()) {
+        for (EidasAdesProfile c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Hash__1.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Hash__1.java
index 8792354745bb9c905ea308675ec2471860738a7b..407366428672c829101dea288924337cad341e11 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Hash__1.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Hash__1.java
@@ -4,10 +4,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
-
 /**
  * Hashwert
  * <p>
@@ -19,15 +20,17 @@ import java.util.Map;
         "type",
         "content"
 })
-public record Hash__1(
+@Getter
+@Setter
+public class Hash__1 {
 
-        @JsonProperty("type")
-        Type type,
+    @JsonProperty("type")
+    Type type;
 
-        @JsonProperty("content")
-        String content,
+    @JsonProperty("content")
+    String content;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/SignatureFormat.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/SignatureFormat.java
index 9df5dd4ee9ae991cae390246458bf72c7d5d5fa4..9bf563df3dbe2fee16513dd07c08c11748acf58b 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/SignatureFormat.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/SignatureFormat.java
@@ -8,7 +8,6 @@ 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 {
 
@@ -21,7 +20,7 @@ public enum SignatureFormat {
     private final static Map<String, SignatureFormat> CONSTANTS = new HashMap<>();
 
     static {
-        for (SignatureFormat c: values()) {
+        for (SignatureFormat c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Signature__1.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Signature__1.java
index e35b63a102fb06baea712b7854583c09a0086035..2708095c758b671db3d0dbf16f75c7499ba028b6 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Signature__1.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Signature__1.java
@@ -4,13 +4,14 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
 
 /**
  * Beschreibt das Signaturformt und Profile
- *
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @JsonPropertyOrder({
@@ -19,21 +20,23 @@ import java.util.Map;
         "detachedSignature",
         "content"
 })
-public record Signature__1(
+@Getter
+@Setter
+public class Signature__1 {
 
-        @JsonProperty("signatureFormat")
-        SignatureFormat signatureFormat,
+    @JsonProperty("signatureFormat")
+    SignatureFormat signatureFormat;
 
-        @JsonProperty("eidasAdesProfile")
-        EidasAdesProfile eidasAdesProfile,
+    @JsonProperty("eidasAdesProfile")
+    EidasAdesProfile eidasAdesProfile;
 
-        @JsonProperty("detachedSignature")
-        Boolean detachedSignature,
+    @JsonProperty("detachedSignature")
+    Boolean detachedSignature;
 
-        @JsonProperty("content")
-        String content,
+    @JsonProperty("content")
+    String content;
 
-        @JsonIgnore
-         Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Type.java b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Type.java
index e14d3aa86e80a82973a1f66c412902efeeef71ac..a9fc941bc34bf82a96f3b63da915c2b7b274249d 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Type.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/attachment/signature/Type.java
@@ -8,7 +8,6 @@ import java.util.Map;
 
 /**
  * Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.
- *
  */
 public enum Type {
 
@@ -17,7 +16,7 @@ public enum Type {
     private final static Map<String, Type> CONSTANTS = new HashMap<>();
 
     static {
-        for (Type c: values()) {
+        for (Type c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/Data.java b/api/src/main/java/fitconnect/api/domain/metadata/data/Data.java
index d43ef300c8ca9158a68943f921c55f1d045d3798..7e830f2d1001d542361b9481ec23a01a0fb4a461 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/Data.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/Data.java
@@ -4,12 +4,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+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({
@@ -17,18 +18,20 @@ import java.util.Map;
         "hash",
         "submissionSchema"
 })
-public record Data(
+@Getter
+@Setter
+public class Data {
 
-        @JsonProperty("signature")
-        Signature signature,
+    @JsonProperty("signature")
+    Signature signature;
 
-        @JsonProperty("hash")
-        Hash hash,
+    @JsonProperty("hash")
+    Hash hash;
 
-        @JsonProperty("submissionSchema")
-        SubmissionSchema submissionSchema,
+    @JsonProperty("submissionSchema")
+    SubmissionSchema submissionSchema;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/EidasAdesProfile.java b/api/src/main/java/fitconnect/api/domain/metadata/data/EidasAdesProfile.java
index 3e19a0aa2274ba1bf16f4d2c2b2f161ab35bca9f..51723dd5d08edcff0b30c39bfc07f6e6a02c9873 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/EidasAdesProfile.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/EidasAdesProfile.java
@@ -8,9 +8,8 @@ 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 {
 
@@ -23,7 +22,7 @@ public enum EidasAdesProfile {
     private final static Map<String, EidasAdesProfile> CONSTANTS = new HashMap<>();
 
     static {
-        for (EidasAdesProfile c: values()) {
+        for (EidasAdesProfile c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/Hash.java b/api/src/main/java/fitconnect/api/domain/metadata/data/Hash.java
index 7000552245dcc8c67209e8f51191ede5efaf1efe..815f1a4897828a09afe7115fe99ada398c80c581 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/Hash.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/Hash.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
@@ -12,21 +14,22 @@ 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",
         "content"
 })
-public record Hash(
+@Getter
+@Setter
+public class Hash {
 
-        @JsonProperty("type")
-        Type type,
+    @JsonProperty("type")
+    Type type;
 
-        @JsonProperty("content")
-        String content,
+    @JsonProperty("content")
+    String content;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-){ }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/MimeType.java b/api/src/main/java/fitconnect/api/domain/metadata/data/MimeType.java
index 6c3aa73762450abae72be7d288e144c13c48d1e6..026beced778f3455859d721acff80688472f5481 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/MimeType.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/MimeType.java
@@ -8,7 +8,6 @@ import java.util.Map;
 
 /**
  * Mimetype (z.B. application/json oder application/xml) des referenzierten Schemas (z.B. XSD- oder JSON-Schema).
- *
  */
 public enum MimeType {
 
@@ -18,7 +17,7 @@ public enum MimeType {
     private final static Map<String, MimeType> CONSTANTS = new HashMap<>();
 
     static {
-        for (MimeType c: values()) {
+        for (MimeType c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/Signature.java b/api/src/main/java/fitconnect/api/domain/metadata/data/Signature.java
index 8a7fe7278819a88baa340ee71e6828cd04b9a925..72f1ad881c67a12e93c4def39341a7a5a3339a8b 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/Signature.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/Signature.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.util.Map;
 
@@ -17,21 +19,23 @@ import java.util.Map;
         "detachedSignature",
         "content"
 })
-public record Signature(
+@Getter
+@Setter
+public class Signature {
 
-        @JsonProperty("signatureFormat")
-        SignatureFormat signatureFormat,
+    @JsonProperty("signatureFormat")
+    SignatureFormat signatureFormat;
 
-        @JsonProperty("eidasAdesProfile")
-        EidasAdesProfile eidasAdesProfile,
+    @JsonProperty("eidasAdesProfile")
+    EidasAdesProfile eidasAdesProfile;
 
-        @JsonProperty("detachedSignature")
-        Boolean detachedSignature,
+    @JsonProperty("detachedSignature")
+    Boolean detachedSignature;
 
-        @JsonProperty("content")
-        String content,
-        @JsonIgnore
-        Map<String, Object> additionalProperties
+    @JsonProperty("content")
+    String content;
 
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
 
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/SignatureFormat.java b/api/src/main/java/fitconnect/api/domain/metadata/data/SignatureFormat.java
index 87053dd923abbc9c032957100e032a6a283f2ac5..de5b96c0625fd749afc979d491757f605ae1c642 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/SignatureFormat.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/SignatureFormat.java
@@ -8,7 +8,6 @@ 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 {
 
@@ -21,7 +20,7 @@ public enum SignatureFormat {
     private final static Map<String, SignatureFormat> CONSTANTS = new HashMap<>();
 
     static {
-        for (SignatureFormat c: values()) {
+        for (SignatureFormat c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/SubmissionSchema.java b/api/src/main/java/fitconnect/api/domain/metadata/data/SubmissionSchema.java
index b62f222e07f256030ba035a17a7a22d7cf37afd2..c2f76da4f7557c4de646fb94d02bf263156ffc95 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/SubmissionSchema.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/SubmissionSchema.java
@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.net.URI;
 import java.util.Map;
@@ -13,21 +15,22 @@ 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",
         "mimeType"
 })
-public record SubmissionSchema(
+@Getter
+@Setter
+public class SubmissionSchema {
 
-        @JsonProperty("schemaUri")
-        URI schemaUri,
+    @JsonProperty("schemaUri")
+    URI schemaUri;
 
-        @JsonProperty("mimeType")
-        MimeType mimeType,
+    @JsonProperty("mimeType")
+    MimeType mimeType;
 
-        @JsonIgnore
-        Map<String, Object> additionalProperties
-) { }
+    @JsonIgnore
+    Map<String, Object> additionalProperties;
+}
diff --git a/api/src/main/java/fitconnect/api/domain/metadata/data/Type.java b/api/src/main/java/fitconnect/api/domain/metadata/data/Type.java
index b6f5c1b686189042d6a708d1488128501eb2b651..4f91c120efeea52d22200b33840132286be36a28 100644
--- a/api/src/main/java/fitconnect/api/domain/metadata/data/Type.java
+++ b/api/src/main/java/fitconnect/api/domain/metadata/data/Type.java
@@ -8,7 +8,6 @@ import java.util.Map;
 
 /**
  * Der verwendete Hash-Algorithmus. Derzeit ist nur `sha512` erlaubt.
- *
  */
 public enum Type {
 
@@ -17,7 +16,7 @@ public enum Type {
     private final static Map<String, Type> CONSTANTS = new HashMap<>();
 
     static {
-        for (Type c: values()) {
+        for (Type c : values()) {
             CONSTANTS.put(c.value, c);
         }
     }
diff --git a/api/src/main/java/fitconnect/api/domain/submission/Submission.java b/api/src/main/java/fitconnect/api/domain/submission/Submission.java
new file mode 100644
index 0000000000000000000000000000000000000000..1744385949678043335e85324d984e3cae574521
--- /dev/null
+++ b/api/src/main/java/fitconnect/api/domain/submission/Submission.java
@@ -0,0 +1,9 @@
+package fitconnect.api.domain.submission;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class Submission {
+}
diff --git a/client/src/main/java/de/fitconnect/client/FitConnectClient.java b/client/src/main/java/de/fitconnect/client/FitConnectClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..c89bb525eb0b5f5e0cc08e7e70b815f8ec7e9b50
--- /dev/null
+++ b/client/src/main/java/de/fitconnect/client/FitConnectClient.java
@@ -0,0 +1,66 @@
+package de.fitconnect.client;
+
+import fitconnect.api.Sender;
+import fitconnect.api.auth.OAuthToken;
+import fitconnect.api.domain.metadata.Metadata;
+import fitconnect.api.domain.metadata.attachment.Attachment;
+import fitconnect.api.domain.metadata.data.Data;
+import fitconnect.api.domain.submission.Submission;
+import fitconnect.api.logger.SdkLogger;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class FitConnectClient {
+
+    private static final Logger logger = SdkLogger.defaultLogger(FitConnectClient.class);
+
+    private final Sender sender;
+    private Optional<OAuthToken> token = Optional.empty();
+
+    public FitConnectClient(){
+        this.sender = ClientFactory.submissionSender();
+    }
+    
+    public FitConnectClient authenticate(String clientId, String secret, String...scope){
+        this.token = sender.retrieveOAuthToken(clientId,secret,scope);
+        return this;
+    }
+
+    public FitConnectClient createSubmission(final Submission submission){
+        checkIfAuthenticated();
+        // TODO implement sendSubmission
+        logger.log(Level.INFO, "created new submission");
+        return this;
+    }
+
+    public FitConnectClient sendSubmission(final Metadata metadata, final Data data){
+        checkIfAuthenticated();
+        // TODO implement
+        logger.log(Level.INFO, "successfully sent submission");
+
+        return this;
+    }
+
+    public FitConnectClient uploadAttachments(final List<Attachment> attachments){
+        checkIfAuthenticated();
+        // TODO implement
+        logger.log(Level.INFO, "uploaded " + attachments.size() + " attachments");
+        return this;
+    }
+
+    public FitConnectClient printToken(){
+        checkIfAuthenticated();
+        logger.log(Level.INFO, "retrieved access token: " + this.token.get().access_token());
+        return this;
+    }
+
+    private void checkIfAuthenticated() {
+        if(token.isEmpty()){
+            throw new IllegalStateException("not authenticated, please authenticate first with authenticate(client, secret)");
+        }
+    }
+
+}
diff --git a/client/src/main/java/de/fitconnect/client/FitConnectSenderClient.java b/client/src/main/java/de/fitconnect/client/FitConnectSenderClient.java
deleted file mode 100644
index a1643802adfe06385d9c4b8cc32f262bba5397e0..0000000000000000000000000000000000000000
--- a/client/src/main/java/de/fitconnect/client/FitConnectSenderClient.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package de.fitconnect.client;
-
-import fitconnect.api.Sender;
-import fitconnect.api.auth.OAuthToken;
-import fitconnect.api.logger.SdkLogger;
-
-import java.util.Optional;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class FitConnectSenderClient {
-
-    private static final Logger logger = SdkLogger.defaultLogger(FitConnectSenderClient.class);
-
-    private final Sender sender;
-    private Optional<OAuthToken> token = Optional.empty();
-
-    public FitConnectSenderClient(){
-        this.sender = ClientFactory.submissionSender();
-    }
-    
-    public FitConnectSenderClient authenticate(String clientId, String secret, String...scope){
-        this.token = sender.retrieveOAuthToken(clientId,secret,scope);
-        return this;
-    }
-
-    public FitConnectSenderClient createSubmission(){
-        checkIfAuthenticated();
-        // TODO implement
-        return this;
-    }
-
-    public FitConnectSenderClient sendSubmission(){
-        checkIfAuthenticated();
-        // TODO implement
-        return this;
-    }
-
-    public FitConnectSenderClient printToken(){
-        checkIfAuthenticated();
-        logger.log(Level.INFO, "retrieved access token: " + this.token.get().access_token());
-        return this;
-    }
-
-    private void checkIfAuthenticated() {
-        if(token.isEmpty()){
-            throw new IllegalStateException("authenticate first");
-        }
-    }
-
-}
diff --git a/client/src/main/java/de/fitconnect/client/TestRunner.java b/client/src/main/java/de/fitconnect/client/TestRunner.java
index 98c94368037cda6dba67bc7fbd415f56eb613671..7a82becdebc053ee4688fbb7f795e8ca6b2c7fe7 100644
--- a/client/src/main/java/de/fitconnect/client/TestRunner.java
+++ b/client/src/main/java/de/fitconnect/client/TestRunner.java
@@ -1,5 +1,9 @@
 package de.fitconnect.client;
 
+import fitconnect.api.domain.submission.Submission;
+
+import java.util.Collections;
+
 public class TestRunner {
 
     public static void main(String[] args) {
@@ -7,12 +11,14 @@ public class TestRunner {
         var clientId = "781f6213-0f0f-4a79-9372-e7187ffda98b";
         var secret = "PnzR8Vbmhpv_VwTkT34wponqXWK8WBm-LADlryYdV4o";
 
-        FitConnectSenderClient senderClient = new FitConnectSenderClient();
+        FitConnectClient client = new FitConnectClient();
 
         // sample high -level- api calls to send a submission
-        senderClient.authenticate(clientId,secret)
+        client
                 .printToken()
-                .createSubmission()
-                .sendSubmission();
+                .authenticate(clientId,secret)
+                .createSubmission(new Submission())
+                .uploadAttachments(Collections.emptyList())
+                .sendSubmission(null, null);
     }
 }
diff --git a/impl/src/test/java/fitconnect/impl/crypto/JWECryptoServiceTest.java b/impl/src/test/java/fitconnect/impl/crypto/JWECryptoServiceTest.java
index c0f1d6f11d4f768613bcf9fc7668e1f1ce2f5ff0..c4b382f80fb8c6c9ed7790d9bdcdcd51b535ba57 100644
--- a/impl/src/test/java/fitconnect/impl/crypto/JWECryptoServiceTest.java
+++ b/impl/src/test/java/fitconnect/impl/crypto/JWECryptoServiceTest.java
@@ -5,7 +5,6 @@ import com.nimbusds.jose.jwk.KeyUse;
 import com.nimbusds.jose.jwk.RSAKey;
 import com.nimbusds.jose.jwk.gen.RSAKeyGenerator;
 import fitconnect.api.crypto.CryptoService;
-import fitconnect.api.exceptions.EncryptionException;
 import org.junit.jupiter.api.Test;
 
 import java.util.UUID;