diff --git a/BasicUnitTest/SenderTests.cs b/BasicUnitTest/SenderTests.cs
index e824755cf22491380dab5cd161d3f1e15f6e3436..87ba281e807a512331518dc61c1ece74cdcbd89d 100644
--- a/BasicUnitTest/SenderTests.cs
+++ b/BasicUnitTest/SenderTests.cs
@@ -85,7 +85,7 @@ public class SenderTests {
     }
 
     [Test]
-    public void VerifyMetaData_MissingLeikaKey_ThorwsAnError() {
+    public void VerifyMetaData_MissingLeikaKey_ThrowsAnError() {
         // Arrange
         var submission = new Submission();
 
diff --git a/FitConnect/FitConnectClient.cs b/FitConnect/FitConnectClient.cs
index 6e348149fbdfb4e664e36734a0fcadafd980a5b7..91f2fe1a8c06dd41ff70f5dc857985aa57c0577c 100644
--- a/FitConnect/FitConnectClient.cs
+++ b/FitConnect/FitConnectClient.cs
@@ -7,6 +7,8 @@ using FitConnect.Services.Interfaces;
 using FitConnect.Services.Models.v1.Submission;
 using Microsoft.Extensions.Logging;
 using Microsoft.IdentityModel.Tokens;
+using Newtonsoft.Json.Schema;
+using ValidationError = NJsonSchema.Validation.ValidationError;
 
 namespace FitConnect;
 
@@ -18,6 +20,15 @@ public abstract class FitConnectClient {
     protected readonly bool VerifiedKeysAreMandatory;
 
 
+    /// <summary>
+    /// Validates <paramref name="dataString"/> against <paramref name="schemaString"/> and returns the validation errors if any appear
+    /// </summary>
+    public static async Task<ICollection<ValidationError>> ValidateSchemaAsync(
+        string dataString, string schemaString) {
+        var schema = await NJsonSchema.JsonSchema.FromJsonAsync(schemaString);
+        return schema.Validate(dataString);
+    }
+
     protected FitConnectClient(FitConnectEnvironment environment,
         string clientId, string clientSecret,
         ILogger? logger = null,
diff --git a/FitConnect/Sender.cs b/FitConnect/Sender.cs
index cc30c2ab888c13bd77729926eafc80ed2f5556e2..f57a1791bfb03c521bd8a5fba2f48f837cc5b77f 100644
--- a/FitConnect/Sender.cs
+++ b/FitConnect/Sender.cs
@@ -197,7 +197,7 @@ public class Sender : FitConnectClient, ISender, ISenderWithDestination,
     /// </summary>
     /// <param name="submission"></param>
     /// <returns></returns>
-    public static string CreateMetadata(Submission submission) {
+    internal static string CreateMetadata(Submission submission) {
         var data = new Data {
             Hash = new DataHash {
                 Type = "sha512",
diff --git a/structure.md b/structure.md
index 7449047f09344202257861f9c18b288de0a57562..e951b473d22abffd9b71576670f012e83171c272 100644
--- a/structure.md
+++ b/structure.md
@@ -16,10 +16,10 @@
     RouteService  
   }
   
-  FitConnectClient ..> SubmissionSender : public
-  FitConnectClient ..> SubmissionSubscriber : public
-  SubmissionSender --|> FunctionalBaseClass
-  SubmissionSubscriber --|> FunctionalBaseClass
+  FitConnectClient ..> Sender : public
+  FitConnectClient ..> Subscriber : public
+  Sender --|> FunctionalBaseClass
+  Subscriber --|> FunctionalBaseClass
   FunctionalBaseClass ..> FitConnectApiService : protected
 
   FitConnectApiService ..> RouteService : public