diff --git a/Encryption/AspNetCoreEncryptor.cs b/Encryption/AspNetCoreEncryptor.cs
index 82afe8c44a2f04abd51778eec26e30f4e4a5990c..e37e0d71947a47b7191d488cce40e0565b5ec4e3 100644
--- a/Encryption/AspNetCoreEncryptor.cs
+++ b/Encryption/AspNetCoreEncryptor.cs
@@ -5,37 +5,32 @@ using IdentityModel.Jwk;
 namespace FitConnect.Encryption;
 
 public class AspNetCoreEncryptor : IEncryptor {
-    public string Encrypt(string plain, string key, out object? passOver) {
-        var encryptionKey = new JsonWebKey(key);
-        var rsa = encryptionKey.ToRsaPublicKey();
+    private readonly RSAEncryptionPadding _rsaEncryptionPadding = RSAEncryptionPadding.OaepSHA256;
 
+    public string Encrypt(string plain, string key, out object? passOver) {
+        var rsa = new JsonWebKey(key).ToRsaKey();
         passOver = rsa;
 
-        var cipher = rsa.Encrypt(Encoding.UTF8.GetBytes(plain), RSAEncryptionPadding.OaepSHA512);
+        var cipher = rsa.Encrypt(Encoding.UTF8.GetBytes(plain), _rsaEncryptionPadding);
         return Convert.ToBase64String(cipher);
     }
 
     public string Decrypt(string cipher, string key, object? passOver = null) {
-        var encryptionKey = new JsonWebKey(key);
-        var rsa = encryptionKey.ToRsaPrivateKey();
+        var rsa = new JsonWebKey(key).ToRsaKey();
 
-        var plain = rsa.Decrypt(Convert.FromBase64String(cipher), RSAEncryptionPadding.OaepSHA512);
+        var plain = rsa.Decrypt(Convert.FromBase64String(cipher), _rsaEncryptionPadding);
         return Encoding.UTF8.GetString(plain);
     }
 
     public byte[] Encrypt(byte[] plain, string key, out object? passOver) {
-        var encryptionKey = new JsonWebKey(key);
-        var rsa = encryptionKey.ToRsaPublicKey();
-
+        var rsa = new JsonWebKey(key).ToRsaKey();
         passOver = rsa;
 
-        return rsa.Encrypt(plain, RSAEncryptionPadding.OaepSHA512);
+        return rsa.Encrypt(plain, _rsaEncryptionPadding);
     }
 
     public byte[] Decrypt(byte[] cipher, string key, object? passOver = null) {
-        var encryptionKey = new JsonWebKey(key);
-        var rsa = encryptionKey.ToRsaPrivateKey();
-
-        return rsa.Decrypt(cipher, RSAEncryptionPadding.OaepSHA512);
+        var rsa = new JsonWebKey(key).ToRsaKey();
+        return rsa.Decrypt(cipher, _rsaEncryptionPadding);
     }
 }
diff --git a/Encryption/FitEncryption.cs b/Encryption/FitEncryption.cs
index 9be480e38f33444a2621abc03a2af665d7f6180b..26f4d81636bf51db0835f8a49f51e78a512369a5 100644
--- a/Encryption/FitEncryption.cs
+++ b/Encryption/FitEncryption.cs
@@ -1,7 +1,4 @@
-using System.Security.Cryptography.X509Certificates;
-using System.Text;
 using Microsoft.Extensions.Logging;
-using Microsoft.IdentityModel.Tokens;
 
 namespace FitConnect.Encryption;
 
@@ -63,6 +60,7 @@ public class FitEncryption {
 
         return _encryptor.Encrypt(plain, PrivateKeyDecryption, out var _);
     }
+
     public byte[] Encrypt(byte[] plain) {
         if (PrivateKeyDecryption == null) {
             throw new InvalidOperationException("PrivateKey is not provided");
diff --git a/Encryption/IEncryption.cs b/Encryption/IEncryption.cs
index 42dcf6896b6a285af6578f1eac7bb833c3fd9739..585a698e3054728af3446bc7276c477941b33187 100644
--- a/Encryption/IEncryption.cs
+++ b/Encryption/IEncryption.cs
@@ -14,7 +14,6 @@ public interface IEncryption {
     /// <exception cref="Exception"></exception>
     void ImportCertificate(string certificatePath, string password);
 
-    byte[] DecryptData(byte[] data);
     string DecryptData(string data);
 
     byte[] ExportPublicKey();
diff --git a/Encryption/JsonWebKeyExtension.cs b/Encryption/JsonWebKeyExtension.cs
index ec1db5103f19e3397f20131f4e4486ababd5f77f..cbebc8c619794b7498ccea70261b6beaf64969f1 100644
--- a/Encryption/JsonWebKeyExtension.cs
+++ b/Encryption/JsonWebKeyExtension.cs
@@ -6,16 +6,7 @@ using IdentityModel.Jwk;
 namespace FitConnect.Encryption;
 
 public static class JsonWebKeyExtension {
-    public static RSA ToRsaPublicKey(this JsonWebKey jsonWebKey) {
-        var rsa = RSA.Create();
-        rsa.ImportParameters(new RSAParameters {
-            Modulus = Base64Url.Decode(jsonWebKey.N),
-            Exponent = Base64Url.Decode(jsonWebKey.E)
-        });
-        return rsa;
-    }
-
-    public static RSA ToRsaPrivateKey(this JsonWebKey jsonWebKey) {
+    public static RSA ToRsaKey(this JsonWebKey jsonWebKey) {
         var rsa = RSA.Create();
         rsa.ImportParameters(new RSAParameters {
             Modulus = Base64Url.Decode(jsonWebKey.N),
@@ -25,8 +16,9 @@ public static class JsonWebKeyExtension {
             Q = Base64Url.Decode(jsonWebKey.Q),
             DP = Base64Url.Decode(jsonWebKey.DP),
             DQ = Base64Url.Decode(jsonWebKey.DQ),
-            InverseQ = Base64Url.Decode(jsonWebKey.QI)
+            InverseQ = Base64Url.Decode(jsonWebKey.QI),
         });
+        //  = "RSA-OAEP-256";
         return rsa;
-    }
+    } 
 }
diff --git a/EncryptionTests/SenderEncryptionWithSelfSignedCertificateTest.cs b/EncryptionTests/SenderEncryptionWithSelfSignedCertificateTest.cs
index 140fec83498fb0beec2e0884327665d862fc2646..19e25d49934a8f41cdce22b7f95413a39f06747f 100644
--- a/EncryptionTests/SenderEncryptionWithSelfSignedCertificateTest.cs
+++ b/EncryptionTests/SenderEncryptionWithSelfSignedCertificateTest.cs
@@ -26,7 +26,6 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
 
     [OneTimeSetUp]
     public void OneTimeSetup() {
-        
     }
 
     [OneTimeTearDown]
@@ -45,16 +44,13 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
         _sender = Sender.Create(
             FitConnectEndpoints.Create(FitConnectEndpoints.EndpointType.Development),
             _logger);
-
-        var certificate = new X509Certificate2("./certificate.pfx");
-        _sender.Encryption.ImportCertificate(certificate);
     }
 
 
     [Test]
     [Order(10)]
     public void CryptWithOutPublicKeyImport() {
-        cypher = _sender.Encryption.EncryptData(Encoding.UTF8.GetBytes(ToEncrypt));
+        cypher = _sender.Encryption.Encrypt(Encoding.UTF8.GetBytes(ToEncrypt));
 
         _logger.LogInformation("Cypher: {}", Convert.ToBase64String(cypher));
     }
@@ -62,14 +58,10 @@ public class SenderEncryptionWithSelfSignedCertificateTest {
     [Test]
     [Order(20)]
     public void Decrypt_ResultShouldMatchToEncrypt() {
-        var result = _sender.Encryption.DecryptData(cypher!);
+        var result = _sender.Encryption.Decrypt(cypher!);
         Encoding.UTF8.GetString(result).Should().Be(ToEncrypt);
     }
 
 
-    [Test]
-    public void ExportPrivateKey() {
-        var privateKey = _sender.Encryption.ExportPrivateKey();
-        _logger.LogInformation("Private key: {}", Convert.ToBase64String(privateKey));
-    }
+    
 }
diff --git a/EncryptionTests/SenderEncryptionWithoutCertificateTest.cs b/EncryptionTests/SenderEncryptionWithoutCertificateTest.cs
index 272bd452f4f3d56317e6dbb0faab20fe2333a4c8..2ae2dd76b1e1ef42790a48a21e29fb7a2718deec 100644
--- a/EncryptionTests/SenderEncryptionWithoutCertificateTest.cs
+++ b/EncryptionTests/SenderEncryptionWithoutCertificateTest.cs
@@ -32,7 +32,7 @@ public class SenderEncryptionWithoutCertificateTest {
     [Test]
     [Order(10)]
     public void EncryptData_ShouldNotThrowAnyException() {
-        var cypher = _sender.Encryption.EncryptData(Encoding.UTF8.GetBytes(ToEncrypt));
+        var cypher = _sender.Encryption.Encrypt(Encoding.UTF8.GetBytes(ToEncrypt));
 
         _cypherText = Convert.ToBase64String(cypher);
         _logger.LogInformation("Cypher: {}", _cypherText);
@@ -43,14 +43,9 @@ public class SenderEncryptionWithoutCertificateTest {
     [Order(20)]
     public void DecryptData_ShouldMatchToEncrypt() {
         var cypher = Convert.FromBase64String(_cypherText);
-        var plain = _sender.Encryption.DecryptData(cypher);
+        var plain = _sender.Encryption.Decrypt(cypher);
 
         Encoding.UTF8.GetString(plain).Should().Be(ToEncrypt);
     }
 
-    [Test]
-    public void ExportPrivateKey_ShouldNotThrowAnyException() {
-        var privateKey = _sender.Encryption.ExportPrivateKey();
-        _logger.LogInformation("Private key: {}", Convert.ToBase64String(privateKey));
-    }
 }
diff --git a/FitConnect/BaseClasses/FunctionalBaseClass.cs b/FitConnect/BaseClasses/FunctionalBaseClass.cs
index 11fd4d2840f63151e6535ad30973b0edb2003013..7ab82efdcd307800672a6913b55900ec36f19e49 100644
--- a/FitConnect/BaseClasses/FunctionalBaseClass.cs
+++ b/FitConnect/BaseClasses/FunctionalBaseClass.cs
@@ -8,7 +8,7 @@ using Microsoft.Extensions.Logging;
 namespace FitConnect.BaseClasses;
 
 public abstract class FunctionalBaseClass {
-    public readonly IEncryption Encryption;
+    public readonly FitEncryption Encryption;
 
     protected readonly ILogger? Logger;
     // protected readonly FitConnectApiService ApiService;
@@ -41,7 +41,6 @@ public abstract class FunctionalBaseClass {
         RouteService = routeService;
     }
 
-    public X509Certificate2 Certificate { get; }
 
     internal Client Owner { get; set; }
 
diff --git a/FitConnect/FluentSubscriber.cs b/FitConnect/FluentSubscriber.cs
index 51a37b7841aed67b7478073828f420a6a51c73d7..60bf3342f2f67d171cbc27fb538cd20ce2413929 100644
--- a/FitConnect/FluentSubscriber.cs
+++ b/FitConnect/FluentSubscriber.cs
@@ -1,5 +1,6 @@
 using System.Security.Cryptography;
 using System.Security.Cryptography.X509Certificates;
+using FitConnect.Encryption;
 using FitConnect.Interfaces;
 using FitConnect.Models;
 using FitConnect.Services;
@@ -17,6 +18,7 @@ public class FluentSubscriber : Subscriber,
     IFluentSubscriberWithSubmission {
     private readonly string _privateKeyDecryption;
     private OAuthAccessToken? _token;
+    private FitEncryption _encryption;
 
 
     public FluentSubscriber(FitConnectEndpoints endpoints,
@@ -59,12 +61,12 @@ public class FluentSubscriber : Subscriber,
             Authenticate(Owner.ClientId, Owner.ClientSecret);
 
         var submission = (Submission)SubmissionService.GetSubmission(submissionId);
-        var metaDataString = Encryption.DecryptData(submission.EncryptedMetadata);
+        var metaDataString = Encryption.Decrypt(submission.EncryptedMetadata);
         if (metaDataString != null)
             submission.Metadata =
                 JsonConvert.DeserializeObject<Metadata>(metaDataString);
 
-        var dataString = Encryption.DecryptData(submission.EncryptedData);
+        var dataString = Encryption.Decrypt(submission.EncryptedData);
         if (dataString != null)
             submission.Data =
                 JsonConvert.DeserializeObject<Data>(dataString);
@@ -88,7 +90,7 @@ public class FluentSubscriber : Subscriber,
         foreach (var id in Submission!.Attachments.Select(a => a.Id)) {
             var encryptedAttachment = SubmissionService.GetAttachment(Submission.Id, id);
 
-            var content = Encryption.DecryptData(Convert.FromBase64String(encryptedAttachment));
+            var content = _encryption.Decrypt(Convert.FromBase64String(encryptedAttachment));
 
             // TODO where do I get the hash from the server to verify the attachment?
             var hash = MD5.Create(HashAlgorithmName.SHA512.ToString())?.ComputeHash(content) ??