diff --git a/jams-launcher/pom.xml b/jams-launcher/pom.xml
index 9a63478b6d47c33f5454300045db1a48467958f2..9eb9bc4d220b2f0c28d578179eae6d92fea7f15c 100644
--- a/jams-launcher/pom.xml
+++ b/jams-launcher/pom.xml
@@ -14,32 +14,27 @@
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-model</artifactId>
-            <version>3.2.5</version>
+            <version>${maven.model.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpcore</artifactId>
-            <version>4.4.12</version>
+            <version>${apache.httpcore.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>4.5.10</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>1.18.12</version>
+            <version>${apache.httpclient.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
-            <version>20.0</version>
+            <version>${google.guava.version}</version>
         </dependency>
         <dependency>
-            <groupId>com.blockfeed</groupId>
-            <artifactId>messaging</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <groupId>org.zeromq</groupId>
+            <artifactId>jeromq</artifactId>
+            <version>${jeromq.version}</version>
         </dependency>
     </dependencies>
 
@@ -49,7 +44,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-shade-plugin</artifactId>
-                <version>2.3</version>
+                <version>${maven.shade.version}</version>
                 <executions>
                     <!-- Run shade goal on package phase -->
                     <execution>
diff --git a/jams-launcher/src/main/java/launcher/MessageReceiver.java b/jams-launcher/src/main/java/launcher/MessageReceiver.java
index 8c153312537536d9660afe06effeec1cdc77ea6f..62f8910d77478233134926fd2665a86a4c0a6f10 100644
--- a/jams-launcher/src/main/java/launcher/MessageReceiver.java
+++ b/jams-launcher/src/main/java/launcher/MessageReceiver.java
@@ -1,9 +1,11 @@
 package launcher;
 
+import lombok.extern.slf4j.Slf4j;
 import org.zeromq.ZMQ;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
+@Slf4j
 public class MessageReceiver extends Thread {
 
     private ZMQ.Socket socket;
@@ -22,7 +24,7 @@ public class MessageReceiver extends Thread {
                 if(message.equals("DO-UPDATE")) atomicBoolean.set(true);
             }
             catch (Exception e){
-                System.out.println("Some exception occurred!");
+                log.error("Some exception occurred on the message receiving thread, details {}!",e.getMessage());
             }
         }
     }
diff --git a/jams-launcher/src/main/java/launcher/UpdateThread.java b/jams-launcher/src/main/java/launcher/UpdateThread.java
index 821a50f9115f85224655a9e950c95b05d3c46b11..dce8c806b043d9cfe72f1db8d44db22a1ed7bb20 100644
--- a/jams-launcher/src/main/java/launcher/UpdateThread.java
+++ b/jams-launcher/src/main/java/launcher/UpdateThread.java
@@ -6,6 +6,7 @@ import com.jsoniter.JsonIterator;
 import com.jsoniter.any.Any;
 import lombok.Getter;
 import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpResponse;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.methods.HttpGet;
@@ -37,6 +38,7 @@ import java.util.logging.Logger;
 
 @Getter
 @Setter
+@Slf4j
 public class UpdateThread extends Thread {
 
     private HashMap<String, String> localVersions = new HashMap<>();
@@ -46,7 +48,6 @@ public class UpdateThread extends Thread {
     private HashMap<String, String> remoteChecksums = new HashMap<>();
 
     private String[] parentArgs;
-    private final static Logger logger = Logger.getLogger(UpdateThread.class.getName());
     private static volatile String CORE_PACKAGE_MAIN_CLASS_NAME;
     private static volatile String UPDATE_SERVER_URL;
     private static volatile Long UPDATE_INTERVAL;
@@ -71,7 +72,7 @@ public class UpdateThread extends Thread {
             messageReceiver = new MessageReceiver(receiver,doUpdate);
             messageReceiver.start();
         } catch (Exception e) {
-            logger.warning("Could not create and bind publisher and/or receiver! Please contact software developer");
+            log.warn("Could not create and bind publisher and/or receiver! Please contact software developer");
             System.exit(-1);
         }
 
@@ -83,7 +84,7 @@ public class UpdateThread extends Thread {
             UPDATE_INTERVAL = any.get("UPDATE_INTERVAL").toLong();
 
         } catch (IOException e) {
-            logger.warning("Missing OEM configuration! Please contact software developer");
+            log.warn("Missing OEM configuration! Please contact software developer");
             System.exit(-1);
         }
 
@@ -149,7 +150,7 @@ public class UpdateThread extends Thread {
             discoverVersions(folderExec);
             discoverVersions(folderLibs);
         } catch (Exception e) {
-            logger.warning(e.toString());
+            log.warn(e.toString());
         }
     }
 
@@ -178,7 +179,7 @@ public class UpdateThread extends Thread {
                 remoteChecksums.put(k, v.get("md5").toString());
             });
         } catch (Exception e) {
-            logger.warning("Could not establish connection to JAMS Update Center with error: " + e.toString());
+            log.warn("Could not establish connection to JAMS Update Center with error: " + e.toString());
         }
     }
 
@@ -236,13 +237,13 @@ public class UpdateThread extends Thread {
                 ((X509Certificate) c).checkValidity();
                 c.verify(ca.getPublicKey());
             } catch (Exception e) {
-                logger.warning("Your license is no longer valid or has been tampered with - " + e.toString());
+                log.warn("Your license is no longer valid or has been tampered with - " + e.toString());
                 return false;
             }
             sslContext = SSLContexts.custom().loadKeyMaterial(ks, "".toCharArray()).loadTrustMaterial(trustStore, null)
                     .build();
         } catch (Exception e) {
-            logger.warning("Could not read license file with error " + e.toString());
+            log.warn("Could not read license file with error " + e.toString());
             return false;
         }
         return true;
@@ -261,14 +262,14 @@ public class UpdateThread extends Thread {
                 HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();
                 HttpResponse httpResponse = httpClient.execute(new HttpGet(UPDATE_SERVER_URL + "/updates/" + v));
                 if (httpResponse.getStatusLine().getStatusCode() == 200) {
-                    logger.info(tmpFolder.getPath() + "/" + files.get(k));
+                    log.info(tmpFolder.getPath() + "/" + files.get(k));
                     FileOutputStream fos = new FileOutputStream(tmpFolder.getPath() + "/" + files.get(k));
                     if (k.equals(CORE_PACKAGE_MAIN_CLASS_NAME)) {
                         httpResponse.getEntity().writeTo(fos);
                         fos.close();
 
                         if (checksum(tmpFolder.getPath() + "/" + files.get(k)).equals(remoteChecksums.get(k))) {
-                            logger.info("Successfully downloaded the core package!");
+                            log.info("Successfully downloaded the core package!");
                             remoteChecksums.remove(CORE_PACKAGE_MAIN_CLASS_NAME);
                         }
 
@@ -277,16 +278,16 @@ public class UpdateThread extends Thread {
                         fos.close();
 
                         if (checksum(tmpFolder.getPath() + "/" + files.get(k)).equals(remoteChecksums.get(k))) {
-                            logger.info("Successfully downloaded a library package!");
+                            log.info("Successfully downloaded a library package!");
                             remoteChecksums.remove(remoteChecksums.get(k));
                         }
                     }
 
                 } else {
-                    logger.warning("The server declared an update but does not have the required files?!");
+                    log.warn("The server declared an update but does not have the required files?!");
                 }
             } catch (Exception e1) {
-                logger.warning("Could not download an update with error " + e1.toString());
+                log.warn("Could not download an update with error " + e1.toString());
             }
         });
     }
@@ -334,14 +335,14 @@ public class UpdateThread extends Thread {
             System.out.println("Murdered process with pid: " + AppStarter.getJamsPID());
             // delete old files
             remoteExecs.forEach((k, v) -> {
-                logger.info(remoteExecs.get(k));
+                log.info(remoteExecs.get(k));
 
                 if (k.equals(CORE_PACKAGE_MAIN_CLASS_NAME)) {
                     File f = new File(System.getProperty("user.dir") + "/" + remoteExecs.get(k));
                     f.delete();
                     f = new File(System.getProperty("user.dir") + "/tmp/" + remoteExecs.get(k));
                     if (!f.renameTo(new File(System.getProperty("user.dir") + "/" + remoteExecs.get(k))))
-                        logger.warning("An error occurred while attempting to move the file!");
+                        log.warn("An error occurred while attempting to move the file!");
                     else
                         f.delete();
                 } else {
@@ -349,7 +350,7 @@ public class UpdateThread extends Thread {
                     f.delete();
                     f = new File(System.getProperty("user.dir") + "/tmp/" + remoteExecs.get(k));
                     if (!f.renameTo(new File(System.getProperty("user.dir") + "/libs/" + remoteExecs.get(k))))
-                        logger.warning("An error occurred while attempting to move the file!");
+                        log.warn("An error occurred while attempting to move the file!");
                     else
                         f.delete();
                 }
@@ -375,7 +376,7 @@ public class UpdateThread extends Thread {
         try {
             FileUtils.deleteDirectory(System.getProperty("user.dir") + "/tmp/");
         } catch (IOException e) {
-            logger.warning("An error occurred while attempting to delete /tmp/ folder!");
+            log.warn("An error occurred while attempting to delete /tmp/ folder!");
         }
     }
 
@@ -384,7 +385,7 @@ public class UpdateThread extends Thread {
         HashCode hash = com.google.common.io.Files
                 .hash(new File(filepath), Hashing.md5());
 
-        logger.info("Calculated md5: " + hash.toString());
+        log.warn("Calculated md5: " + hash.toString());
         return hash.toString();
     }
 
@@ -410,7 +411,7 @@ public class UpdateThread extends Thread {
             };
             timer.scheduleAtFixedRate(pollTask, 15000, UPDATE_INTERVAL);
         } catch (Exception e) {
-            logger.warning("error! " + e.toString());
+            log.warn("error! " + e.toString());
         }
     }
 }
\ No newline at end of file
diff --git a/jams-server/pom.xml b/jams-server/pom.xml
index df79a7a973d6746c7d9745a60f0c4b535f483b48..16d4bc93a882176e56580aec0eaf03f8167df009 100644
--- a/jams-server/pom.xml
+++ b/jams-server/pom.xml
@@ -66,11 +66,6 @@
             <artifactId>asm</artifactId>
             <version>${asm.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-            <version>20190722</version>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/jams-server/src/main/java/module-info.java b/jams-server/src/main/java/module-info.java
index b695686d7f4179a841768289a220bac0b94f7e9f..ff32d400b7c3bc1f666899b05ebb1faf0fce6c5c 100644
--- a/jams-server/src/main/java/module-info.java
+++ b/jams-server/src/main/java/module-info.java
@@ -14,7 +14,6 @@ module jams.server {
     requires jami.dht;
     requires nimbus.jose.jwt;
     requires java.desktop;
-    requires org.json;
     requires java.naming;
     requires java.logging;
     requires javax.servlet.api;
diff --git a/jams-server/src/main/java/net/jami/jams/server/Server.java b/jams-server/src/main/java/net/jami/jams/server/Server.java
index ad882a203f2578ae7a07c59057c00f6bce0cffa9..48b23a5b2aa34ec97d31d2a49d669ae940c01128 100644
--- a/jams-server/src/main/java/net/jami/jams/server/Server.java
+++ b/jams-server/src/main/java/net/jami/jams/server/Server.java
@@ -26,8 +26,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
 @Slf4j
 public class Server {
 
-    public static AtomicBoolean isInstalled = new AtomicBoolean(false);
-    private static volatile boolean activated = false;
+    public  final static AtomicBoolean isInstalled = new AtomicBoolean(false);
+    public  final static AtomicBoolean activated = new AtomicBoolean(false);
 
     static {
         JsoniterRegistry.initCodecs();
@@ -92,12 +92,4 @@ public class Server {
             log.info("Started server with empty modules waiting for setup...");
         }
     }
-
-    public static boolean isActivated() {
-        return activated;
-    }
-
-    public static void setActivated(boolean isActivated) {
-        Server.activated = isActivated;
-    }
 }
diff --git a/jams-server/src/main/java/net/jami/jams/server/licensing/LicenseService.java b/jams-server/src/main/java/net/jami/jams/server/licensing/LicenseService.java
index 1e0f30935cfbc0a0deb2e834faba4d43aadafa00..14d58c9c23520ec845b9985db04afb3e5bfc8143 100644
--- a/jams-server/src/main/java/net/jami/jams/server/licensing/LicenseService.java
+++ b/jams-server/src/main/java/net/jami/jams/server/licensing/LicenseService.java
@@ -77,7 +77,7 @@ public class LicenseService {
             }
         }
         catch (Exception e){
-            Server.setActivated(false);
+            Server.activated.set(false);
             licenseType = "COMMUNITY";
             //logger.warning("An exception occurred while checking your license: " + e.toString());
         }
diff --git a/pom.xml b/pom.xml
index e55eb9726a217afc9d8e262b4cb5eb0eacd5ff85..512c694dd5214312bc6b3152f4873765d8a2cd9f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,6 +47,11 @@
         <maven.clean.version>3.1.0</maven.clean.version>
         <nimbus.jwt.version>8.17</nimbus.jwt.version>
         <asm.version>8.0</asm.version>
+        <jeromq.version>0.5.2</jeromq.version>
+        <maven.model.version>3.2.5</maven.model.version>
+        <apache.httpcore.version>4.4.12</apache.httpcore.version>
+        <apache.httpclient.version>4.5.10</apache.httpclient.version>
+        <google.guava.version>20.0</google.guava.version>
     </properties>
 
     <dependencies>