diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7462e5c709443dc115909d1014340e9595ad0ee7..9da1ab0fb92954fdd7f6a47307166766a9d68170 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,6 @@ build:
     - echo "BUILD_DATE=${BUILD_DATE}" > build.env
     - echo "JAR_NAME=${JAR_NAME}" >> build.env
     - echo "BUILD_JOB_ID=${CI_JOB_ID}" >> build.env
-    - ls -l
   artifacts:
     paths:
       - "PrivateServerPlugin-*.jar"
diff --git a/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java b/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
index b1b9f68a93a7f5adead2fa1a59625ee99cf06a04..940f473bb9fd319fe37232cb29b1cf82a454e2a4 100644
--- a/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
+++ b/src/main/java/com/slprojects/privateServerPlugin/PrivateServerPlugin.java
@@ -1,25 +1,20 @@
 package com.slprojects.privateServerPlugin;
 
 import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.minimessage.MiniMessage;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.Listener;
 import org.bukkit.event.player.PlayerJoinEvent;
 import org.bukkit.plugin.java.JavaPlugin;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public final class PrivateServerPlugin extends JavaPlugin implements Listener {
 
-    private List<Integer> shownWelcomeMessagesIndexes;
+    private WelcomeMessageManager welcomeMessageManager;
 
     @Override
     public void onEnable() {
         getServer().getPluginManager().registerEvents(this, this);
-        this.shownWelcomeMessagesIndexes = new ArrayList<>();
+        this.welcomeMessageManager = new WelcomeMessageManager();
     }
 
     @Override
@@ -30,41 +25,10 @@ public final class PrivateServerPlugin extends JavaPlugin implements Listener {
     @EventHandler
     public void onPlayerJoin(PlayerJoinEvent event) {
         event.joinMessage(null);
+        Component welcomeMessage = welcomeMessageManager.getNextRandomMessage(event.getPlayer().getName());
 
         for (Player p : getServer().getOnlinePlayers()) {
-            p.sendMessage(chooseRandomWelcomeMessage(event.getPlayer().getName()));
-        }
-    }
-
-    private Component chooseRandomWelcomeMessage(String playerNickname) {
-        List<String> welcomeMessages = getWelcomeMessages(playerNickname);
-
-        if (welcomeMessages.size() == shownWelcomeMessagesIndexes.size()) {
-            shownWelcomeMessagesIndexes.clear();
+            p.sendMessage(welcomeMessage);
         }
-
-        int choosenMessageIndex = (int) (Math.random() * welcomeMessages.size());
-        String choosenMessage = welcomeMessages.get(choosenMessageIndex);
-
-        while (shownWelcomeMessagesIndexes.contains(choosenMessageIndex)) {
-            choosenMessageIndex = (int) (Math.random() * welcomeMessages.size());
-            choosenMessage = welcomeMessages.get(choosenMessageIndex);
-        }
-
-        shownWelcomeMessagesIndexes.add(choosenMessageIndex);
-        return MiniMessage.miniMessage().deserialize(choosenMessage);
-    }
-
-    private static @NotNull List<String> getWelcomeMessages(String playerNickname) {
-        List<String> welcomeMessages = new ArrayList<>();
-        welcomeMessages.add("Un <green>" + playerNickname + "<reset> sauvage apparaît!");
-        welcomeMessages.add("Ah que coucou <green>" + playerNickname + "<reset> !");
-        welcomeMessages.add("Tiens, voilà <green>" + playerNickname + "<reset> !");
-        welcomeMessages.add("Yop <green>" + playerNickname + "<reset> !");
-        welcomeMessages.add("C'est qui ? C'est <green>" + playerNickname + "<reset> qui arrive !");
-        welcomeMessages.add("Bim bam boum, <green>" + playerNickname + "<reset> est là !");
-        welcomeMessages.add("Yo yo yo <green>" + playerNickname + "<reset> est dans la place !");
-        welcomeMessages.add("Faites du bruit pour notre cher <green>" + playerNickname + "<reset> !");
-        return welcomeMessages;
     }
 }
diff --git a/src/main/java/com/slprojects/privateServerPlugin/WelcomeMessageManager.java b/src/main/java/com/slprojects/privateServerPlugin/WelcomeMessageManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf8c457de6b57a60311613708940561a686c47e2
--- /dev/null
+++ b/src/main/java/com/slprojects/privateServerPlugin/WelcomeMessageManager.java
@@ -0,0 +1,45 @@
+package com.slprojects.privateServerPlugin;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.minimessage.MiniMessage;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class WelcomeMessageManager {
+    private final List<Integer> shownWelcomeMessagesIndexes = new ArrayList<>();
+    private static final List<String> WELCOME_MESSAGE_TEMPLATES = List.of(
+            "Un <green>%s<reset> sauvage apparaît!",
+            "Ah que coucou <green>%s<reset> !",
+            "Tiens, voilà <green>%s<reset> !",
+            "Yop <green>%s<reset> !",
+            "C'est qui ? C'est <green>%s<reset> qui arrive !",
+            "Bim bam boum, <green>%s<reset> est là !",
+            "Yo yo yo <green>%s<reset> est dans la place !",
+            "Faites du bruit pour notre cher <green>%s<reset> !"
+    );
+
+    public Component getNextRandomMessage(String playerNickname) {
+        List<String> welcomeMessages = generateMessages(playerNickname);
+
+        if (welcomeMessages.size() == shownWelcomeMessagesIndexes.size()) {
+            shownWelcomeMessagesIndexes.clear();
+        }
+
+        int chosenIndex;
+        do {
+            chosenIndex = (int) (Math.random() * welcomeMessages.size());
+        } while (shownWelcomeMessagesIndexes.contains(chosenIndex));
+
+        shownWelcomeMessagesIndexes.add(chosenIndex);
+        return MiniMessage.miniMessage().deserialize(welcomeMessages.get(chosenIndex));
+    }
+
+    private List<String> generateMessages(String playerNickname) {
+        List<String> messages = new ArrayList<>();
+        for (String template : WELCOME_MESSAGE_TEMPLATES) {
+            messages.add(String.format(template, playerNickname));
+        }
+        return messages;
+    }
+}