diff --git a/README.md b/README.md
index bb9f53d..7d381fc 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 <div align="center">
     <h1>Chaika RPC (Chaika > all)</h1>
-    <img alt="version" src="https://img.shields.io/badge/version-v1.0-blue.svg">
+    <img alt="version" src="https://img.shields.io/badge/version-v1.1-blue.svg">
     <img alt="licence" src="https://img.shields.io/badge/license-MIT-brightgreen.svg">    
 </div>
 
diff --git a/build.gradle b/build.gradle
index 12019c6..b630471 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ plugins {
 }
 
 group 'isoss.chaika.rpc'
-version '1.0'
+version '1.1'
 
 compileJava.options.encoding = 'UTF-8'
 
@@ -19,7 +19,7 @@ shadowJar {
 
 jar{
     manifest{
-        attributes('Main-Class': 'Main')
+        attributes('Main-Class': 'asthowen.chaika.ui.Main')
     }
 }
 
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
deleted file mode 100644
index 33fedb1..0000000
--- a/src/main/java/Main.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import isoss.chaika.rpc.ChaikaPresence;
-
-public class Main {
-
-    public static void main(String[] args) {
-        new ChaikaPresence().init();
-
-    }
-
-}
diff --git a/src/main/java/asthowen/chaika/ui/Main.java b/src/main/java/asthowen/chaika/ui/Main.java
new file mode 100644
index 0000000..2ed67e2
--- /dev/null
+++ b/src/main/java/asthowen/chaika/ui/Main.java
@@ -0,0 +1,67 @@
+package asthowen.chaika.ui;
+
+import asthowen.chaika.ui.panels.ConfigPanel;
+import asthowen.chaika.ui.panels.MainPanel;
+import isoss.chaika.rpc.ChaikaPresence;
+
+import javax.imageio.ImageIO;
+import javax.swing.*;
+import java.awt.*;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+public class Main extends JFrame {
+
+    public static ChaikaPresence presence;
+
+    public static Main main;
+    public static MainPanel mainPanel;
+
+    public ConfigPanel configPanel;
+
+    public Main(){
+        System.out.println("ROAD TO ADD CHAIKA'S EMOJI ON GITHUB !");
+
+        presence = new ChaikaPresence();
+        presence.init();
+
+        setTitle("Chaika Discord RPC");
+        setSize(1280, 720);
+        setResizable(false);
+        setLocationRelativeTo(null);
+
+        setContentPane(mainPanel = new MainPanel());
+
+        setDefaultCloseOperation(EXIT_ON_CLOSE);
+
+        try {
+            setIconImage(ImageIO.read(Main.class.getResourceAsStream("/chaika.png")));
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        Color backgroundColor = Color.decode("#24343C");
+        getContentPane().setBackground(backgroundColor);
+
+        setVisible(true);
+
+        try {
+            TimeUnit.SECONDS.sleep(2);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+
+        setContentPane(configPanel = new ConfigPanel());
+        getContentPane().setBackground(backgroundColor);
+
+        repaint();
+        revalidate();
+
+    }
+
+    public static void main(String[] args){
+        main = new Main();
+
+    }
+
+}
diff --git a/src/main/java/asthowen/chaika/ui/panels/ConfigPanel.java b/src/main/java/asthowen/chaika/ui/panels/ConfigPanel.java
new file mode 100644
index 0000000..bc8e6ef
--- /dev/null
+++ b/src/main/java/asthowen/chaika/ui/panels/ConfigPanel.java
@@ -0,0 +1,98 @@
+package asthowen.chaika.ui.panels;
+
+import asthowen.chaika.ui.Main;
+import asthowen.chaika.ui.utils.Utils;
+import isoss.chaika.rpc.ConfigWrapper;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionListener;
+import java.nio.file.Paths;
+
+public class ConfigPanel extends JPanel {
+
+    private static final JTextField applicationIDField = new JTextField();
+    private static final JLabel applicationIDLabel = new JLabel("Application ID :");
+
+    private static final JTextField applicationDetailsField = new JTextField();
+    private static final JLabel applicationDetailsLabel = new JLabel("Détails :");
+
+    private static final JTextField applicationLargeImageKeyField = new JTextField();
+    private static final JLabel applicationLargeImageKeyLabel = new JLabel("Large Image Key :");
+
+    private static final JTextField applicationLargeImageTextField = new JTextField();
+    private static final JLabel applicationLargeImageTextLabel = new JLabel("Large Image Text :");
+
+    private static final JTextField applicationSmallImageKeyField = new JTextField();
+    private static final JLabel applicationSmallImageKeyLabel = new JLabel("Small Image Key :");
+
+    private static final JTextField applicationSmallImageTextField = new JTextField();
+    private static final JLabel applicationSmallImageTextLabel = new JLabel("Small Image Text :");
+
+    private static final JButton enterButton = new JButton("Save");
+
+    public ConfigPanel(){
+        setLayout(null);
+
+        String applicationId = ConfigWrapper.get("applicationId");
+        String details = ConfigWrapper.get("details");
+        String largeImageKey = ConfigWrapper.get("largeImageKey");
+        String largeImageText = ConfigWrapper.get("largeImageText");
+        String smallImageKey = ConfigWrapper.get("smallImageKey");
+        String smallImageText = ConfigWrapper.get("smallImageText");
+
+        Utils.createFieldAndLabel(applicationIDField, applicationId, 100, applicationIDLabel, 65);
+        Utils.createFieldAndLabel(applicationDetailsField, details, 180, applicationDetailsLabel, 145);
+        Utils.createFieldAndLabel(applicationLargeImageKeyField, largeImageKey, 260, applicationLargeImageKeyLabel, 225);
+        Utils.createFieldAndLabel(applicationLargeImageTextField, largeImageText, 340, applicationLargeImageTextLabel, 305);
+        Utils.createFieldAndLabel(applicationSmallImageKeyField, smallImageKey, 420, applicationSmallImageKeyLabel, 385);
+        Utils.createFieldAndLabel(applicationSmallImageTextField, smallImageText, 500, applicationSmallImageTextLabel, 465);
+
+        applicationIDField.setText(applicationId);
+        applicationDetailsField.setText(details);
+        applicationLargeImageKeyField.setText(largeImageKey);
+        applicationLargeImageTextField.setText(largeImageText);
+        applicationSmallImageKeyField.setText(smallImageKey);
+        applicationSmallImageTextField.setText(smallImageText);
+
+        enterButton.setBounds(1280 / 2 - 275 /2, 600, 275, 40);
+        enterButton.setFont(new Font("Verdana", Font.PLAIN, 20));
+        enterButton.setForeground(Utils.colorForeground);
+        enterButton.setBackground(Utils.colorBackground);
+
+        ActionListener actionListener = event -> {
+            ConfigWrapper.set("applicationId", applicationIDField.getText());
+            ConfigWrapper.set("details", applicationDetailsField.getText());
+            ConfigWrapper.set("largeImageKey", applicationLargeImageKeyField.getText());
+            ConfigWrapper.set("largeImageText", applicationLargeImageTextField.getText());
+            ConfigWrapper.set("smallImageKey", applicationSmallImageKeyField.getText());
+            ConfigWrapper.set("smallImageText", applicationSmallImageTextField.getText());
+
+            Main.presence.updatePresence();
+
+            ConfigWrapper.write(Paths.get("config.json"));
+
+            System.out.println("Config saved !");
+        };
+
+        enterButton.addActionListener(actionListener);
+
+        add(applicationIDField);
+        add(applicationIDLabel);
+        add(applicationDetailsField);
+        add(applicationDetailsLabel);
+        add(applicationLargeImageKeyField);
+        add(applicationLargeImageKeyLabel);
+        add(applicationLargeImageKeyField);
+        add(applicationLargeImageTextField);
+        add(applicationLargeImageTextLabel);
+        add(applicationSmallImageKeyField);
+        add(applicationSmallImageKeyField);
+        add(applicationSmallImageKeyLabel);
+        add(applicationSmallImageTextField);
+        add(applicationSmallImageTextLabel);
+        add(enterButton);
+
+    }
+
+}
diff --git a/src/main/java/asthowen/chaika/ui/panels/MainPanel.java b/src/main/java/asthowen/chaika/ui/panels/MainPanel.java
new file mode 100644
index 0000000..41ceadf
--- /dev/null
+++ b/src/main/java/asthowen/chaika/ui/panels/MainPanel.java
@@ -0,0 +1,23 @@
+package asthowen.chaika.ui.panels;
+
+import asthowen.chaika.ui.utils.Utils;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class MainPanel extends JPanel {
+
+    public MainPanel(){
+        setLayout(new GridBagLayout());
+
+        //Add Title
+        JLabel textLabel = new JLabel("Bienvenue sur Chaika Discord RPC !");
+        textLabel.setFont(new Font("Verdana", 0, 50));
+        textLabel.setForeground(Utils.colorForeground);
+        textLabel.setBackground(Utils.colorBackground);
+        textLabel.setSize(550, 150);
+        add(textLabel);
+
+    }
+
+}
diff --git a/src/main/java/asthowen/chaika/ui/utils/Utils.java b/src/main/java/asthowen/chaika/ui/utils/Utils.java
new file mode 100644
index 0000000..2eec3a7
--- /dev/null
+++ b/src/main/java/asthowen/chaika/ui/utils/Utils.java
@@ -0,0 +1,26 @@
+package asthowen.chaika.ui.utils;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class Utils {
+    public static Color colorBackground = Color.decode("#24343C");
+    public static Color colorForeground = Color.decode("#99AAB5");
+
+    public static void  createFieldAndLabel(JTextField textField, String text, int y, JLabel textLabel, int y2){
+        //Create TextField
+        textField.setBounds(1280 / 2 - 550 /2, y, 550, 40);
+        textField.setFont(new Font("Verdana", 0, 30));
+        textField.setForeground(colorForeground);
+        textField.setBackground(colorBackground);
+        textField.setText(text);
+
+        //Create JLabel
+        textLabel.setBounds(1280 / 2 - 550 /2, y2, 550, 40);
+        textLabel.setFont(new Font("Verdana", 0, 20));
+        textLabel.setForeground(colorForeground);
+        textLabel.setBackground(colorBackground);
+
+    }
+
+}
diff --git a/src/main/java/isoss/chaika/rpc/ChaikaPresence.java b/src/main/java/isoss/chaika/rpc/ChaikaPresence.java
index 8bf49b9..2106ccc 100644
--- a/src/main/java/isoss/chaika/rpc/ChaikaPresence.java
+++ b/src/main/java/isoss/chaika/rpc/ChaikaPresence.java
@@ -7,6 +7,12 @@
 public class ChaikaPresence {
 
     private DiscordRichPresence chaikaPresence;
+    private long startTimestamp;
+
+    public ChaikaPresence() {
+        this.chaikaPresence = new DiscordRichPresence();
+
+    }
 
     public void init() {
         DiscordRPC rpc = DiscordRPC.INSTANCE;
@@ -16,25 +22,35 @@ public void init() {
 
         rpc.Discord_Initialize(ConfigWrapper.get("applicationId"), handlers, true, "");
 
-        this.chaikaPresence = new DiscordRichPresence();
-        this.chaikaPresence.startTimestamp = System.currentTimeMillis() / 1000;
-        this.chaikaPresence.largeImageKey = ConfigWrapper.get("largeImageKey");
-        this.chaikaPresence.largeImageText = ConfigWrapper.get("largeImageText");
-        this.chaikaPresence.smallImageKey = ConfigWrapper.get("smallImageKey");
-        this.chaikaPresence.smallImageText = ConfigWrapper.get("smallImageText");
-        this.chaikaPresence.details = ConfigWrapper.get("details");
+        this.startTimestamp = System.currentTimeMillis() / 1000;
+        this.updatePresence();
 
-        rpc.Discord_UpdatePresence(chaikaPresence);
-
-        new Thread(() -> {
+        Thread callbackHandler = new Thread(() -> {
 
-            while(!Thread.currentThread().isInterrupted()) {
+            while(true) {
                 rpc.Discord_RunCallbacks();
                 try { Thread.sleep(2000); } catch(InterruptedException e) {}
 
             }
 
-        }, "ChaikaRPC-Callback-Handler").start();
+        }, "ChaikaRPC-Callback-Handler");
+
+        callbackHandler.setDaemon(true);
+        callbackHandler.start();
+
+    }
+
+    public void updatePresence() {
+        DiscordRPC rpc = DiscordRPC.INSTANCE;
+
+        this.chaikaPresence.startTimestamp = startTimestamp;
+        this.chaikaPresence.largeImageKey = ConfigWrapper.get("largeImageKey");
+        this.chaikaPresence.largeImageText = ConfigWrapper.get("largeImageText");
+        this.chaikaPresence.smallImageKey = ConfigWrapper.get("smallImageKey");
+        this.chaikaPresence.smallImageText = ConfigWrapper.get("smallImageText");
+        this.chaikaPresence.details = ConfigWrapper.get("details");
+
+        rpc.Discord_UpdatePresence(chaikaPresence);
 
     }
 
diff --git a/src/main/java/isoss/chaika/rpc/ConfigWrapper.java b/src/main/java/isoss/chaika/rpc/ConfigWrapper.java
index 165f0ed..b999053 100644
--- a/src/main/java/isoss/chaika/rpc/ConfigWrapper.java
+++ b/src/main/java/isoss/chaika/rpc/ConfigWrapper.java
@@ -8,6 +8,7 @@
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 
 public class ConfigWrapper {
 
@@ -17,11 +18,11 @@ public class ConfigWrapper {
         config = new JsonObject();
 
         setDefault("applicationId", Constants.APPLICATION_ID);
+        setDefault("details", Constants.DETAILS);
         setDefault("largeImageKey", Constants.LARGE_IMAGE_KEY);
         setDefault("largeImageText", Constants.LARGE_IMAGE_TEXT);
         setDefault("smallImageKey", Constants.SMALL_IMAGE_KEY);
         setDefault("smallImageText", Constants.SMALL_IMAGE_TEXT);
-        setDefault("details", Constants.DETAILS);
 
     }