diff --git a/index.ts b/index.ts
index 3f793549e9185b2534e4eca2ecabbe4d113ccd0b..0493023e44b6d967baa8fa1b1e509736e5860c1e 100644
--- a/index.ts
+++ b/index.ts
@@ -1,56 +1,15 @@
 import { Command } from 'commander';
 import chalk from 'chalk';
-import { createInterface } from 'readline';
 import fs from "fs";
 import { TezosToolkit } from '@taquito/taquito';
 import { InMemorySigner } from '@taquito/signer';
-import figlet from 'figlet';
-
-// START SERVICE
-function createToken(address: string, tezos) {
-  tezos.wallet.at(address)
-  .then((contract) => contract.methodsObject.discoverPlanet({
-    density: 0,
-    planet_type: "terrestrial",
-    coordinate: [0,0,0],
-    name: "test"
-  }).send())
-  .then((op) => {
-      console.log(`Hash: ${op.opHash}`);
-      return op.confirmation();
-  })
-  .then((result) => {
-      console.log(result);
-      if (result.completed) {
-          console.log(`Transaction correctly processed!
-          Block: ${result.block.header.level}
-          Chain ID: ${result.block.chain_id}`);
-      } else {
-          console.log('An error has occurred');
-      }
-  })
-  .catch((err) => console.log(err));
-}
-// END SERVICE
+import { askQuestion } from './src/utils/askQuestion.js';
+import { getBalance } from './src/services/getBalance.js';
+import { getAsciiArtText } from './src/utils/getAsciiArtText.js';
 
 const tezos = new TezosToolkit('https://ghostnet.tezos.marigold.dev');
-
 const program = new Command();
 
-async function askQuestion(question: string): Promise<string> {
-  const readline = createInterface({
-    input: process.stdin,
-    output: process.stdout
-  });
-
-  return new Promise(resolve => {
-    readline.question(question, (answer: string) => {
-      resolve(answer.trim());
-      readline.close();
-    });
-  });
-}
-
 program
   .option('-f, --file <filePath>', 'Chemin du fichier JSON du portefeuille')
   .parse(process.argv);
@@ -60,43 +19,16 @@ if (!program.args) {
   process.exit(1);
 }
 
-// Charger le fichier JSON du portefeuille
+// LOAD WALLET FROM JSON
 const walletData = JSON.parse(fs.readFileSync(program.args[0], 'utf8'));
 
+// REGISTER THE PROVIDER
 const signer = new InMemorySigner(walletData.privateKey);
 tezos.setProvider({ signer });
 
-async function getBalance(privateKey) {
-  try {
-    // Obtenez le solde du portefeuille associé à la clé privée
-    const balance = await tezos.tz.getBalance(await tezos.signer.publicKeyHash());
-    console.log(`\nSolde du portefeuille: ${balance.toNumber() / 1000000} ꜩ\n`);
-  } catch (error) {
-    console.error('Erreur lors de la récupération du solde:', error);
-  }
-}
-
 program
   .action(async () => {
-    await figlet.text(
-      "My Asso",
-      {
-        font: "Big Money-nw",
-        horizontalLayout: "default",
-        verticalLayout: "default",
-        width: 80,
-        whitespaceBreak: true,
-      },
-      function (err, data) {
-        if (err) {
-          console.log("Something went wrong...");
-          console.dir(err);
-          return;
-        }
-        console.log(data);
-      }
-    );
-
+    await getAsciiArtText()
     console.log(`\n`);
 
     // Définir un moyen de connaître le rôle 
@@ -128,7 +60,8 @@ program
           // Faire le call pour créer un token
           console.log(chalk.green("\nVotre token a été créé !!\n"));
         } else if (choice === '3') {
-          await getBalance(walletData.privateKey);
+          const balance = await getBalance(tezos);
+          console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`);
         } else {
           console.log('Choix invalide');
         }
@@ -146,7 +79,8 @@ program
           console.log(chalk.green("\nVous avez soumis une proposition !!\n"));
           // Faire l'appel a post proposal association
         } else if (choice === '2') {
-          await getBalance(walletData.privateKey);
+          const balance = await getBalance(tezos);
+          console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`);
         } else {
           console.log('Choix invalide');
         }
@@ -166,7 +100,8 @@ program
           console.log(chalk.green("\nVous avez rejoint l'association !!\n"));
           // Faire l'appel a join association
         } else if (choice === '2') {
-          await getBalance(walletData.privateKey);
+          const balance = await getBalance(tezos);
+          console.log(`\nSolde du portefeuille: ${balance} ꜩ\n`);
         } else {
           console.log('Choix invalide');
         }
diff --git a/package-lock.json b/package-lock.json
index 67aabcd1c7c704fce66052b613211838072f4350..60f07d94e99d1e613303d279873b65e7efc03ce4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,6 +21,7 @@
       },
       "devDependencies": {
         "@types/commander": "^2.12.2",
+        "@types/figlet": "^1.5.8",
         "@types/node": "^20.11.19"
       }
     },
@@ -415,6 +416,12 @@
         "commander": "*"
       }
     },
+    "node_modules/@types/figlet": {
+      "version": "1.5.8",
+      "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.5.8.tgz",
+      "integrity": "sha512-G22AUvy4Tl95XLE7jmUM8s8mKcoz+Hr+Xm9W90gJsppJq9f9tHvOGkrpn4gRX0q/cLtBdNkWtWCKDg2UDZoZvQ==",
+      "dev": true
+    },
     "node_modules/@types/node": {
       "version": "20.11.19",
       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
diff --git a/package.json b/package.json
index 47053d0bb36ca6d53f22e2b2f99c11865d3e2ac6..d064a1237d49f4fcf3e1a773ddaf8e1c6e6733ae 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
   },
   "devDependencies": {
     "@types/commander": "^2.12.2",
+    "@types/figlet": "^1.5.8",
     "@types/node": "^20.11.19"
   }
 }
diff --git a/src/services/createToken.ts b/src/services/createToken.ts
index 69b8a54fef9dd8207c2c9ebde310f5a16fe380fc..9c23a0601998067cf8999af37351977a956e416d 100644
--- a/src/services/createToken.ts
+++ b/src/services/createToken.ts
@@ -1,9 +1,17 @@
-function createToken(address: string, tezos) {
-    tezos.wallet.at(address)
-    .then((contract) => contract.methodsObject.areYouThere(true).send())
+function createToken(address: string, tezos: any) {
+  const planetRequest = {
+    name: "Earth",
+    coordinate: [0, 0, 0],
+    planet_type: ["Terrestrial"],
+    density: 1n
+  };
+  tezos.wallet.at(address)
+    .then(async (contract) => {
+      await contract.methods.discoverPlanet(planetRequest, contract.storage()).send();
+    })
     .then((op) => {
-        console.log(`Hash: ${op.opHash}`);
-        return op.confirmation();
+      console.log(`Hash: ${op.opHash}`);
+      return op.confirmation();
     })
     .then((result) => {
         console.log(result);
@@ -16,6 +24,6 @@ function createToken(address: string, tezos) {
         }
     })
     .catch((err) => console.log(err));
-}
+  }
 
 export { createToken }
\ No newline at end of file
diff --git a/src/services/getBalance.ts b/src/services/getBalance.ts
new file mode 100644
index 0000000000000000000000000000000000000000..71b2cf575cdc3bc1c8891a63ff90a99dd5d7e4e5
--- /dev/null
+++ b/src/services/getBalance.ts
@@ -0,0 +1,12 @@
+import { TezosToolkit } from "@taquito/taquito";
+
+async function getBalance(tezos: TezosToolkit) {
+    try {
+        const balance = await tezos.tz.getBalance(await tezos.signer.publicKeyHash());
+        return balance.toNumber() / 1000000
+    } catch (error) {
+        console.error('Erreur lors de la récupération du solde:', error);
+    }
+}
+
+export { getBalance }
\ No newline at end of file
diff --git a/src/utils/askQuestion.ts b/src/utils/askQuestion.ts
new file mode 100644
index 0000000000000000000000000000000000000000..50b8a1fe65f565675ff2255bc0e8642ad2b74098
--- /dev/null
+++ b/src/utils/askQuestion.ts
@@ -0,0 +1,17 @@
+import { createInterface } from 'readline';
+
+async function askQuestion(question: string): Promise<string> {
+    const readline = createInterface({
+        input: process.stdin,
+        output: process.stdout
+    });
+
+    return new Promise(resolve => {
+        readline.question(question, (answer: string) => {
+        resolve(answer.trim());
+        readline.close();
+        });
+    });
+}
+
+export { askQuestion }
\ No newline at end of file
diff --git a/src/utils/getAsciiArtText.ts b/src/utils/getAsciiArtText.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c98dbc847350816a82438b09e748a663a246dedd
--- /dev/null
+++ b/src/utils/getAsciiArtText.ts
@@ -0,0 +1,24 @@
+import figlet from 'figlet';
+
+async function getAsciiArtText() {
+    await figlet.text(
+        "My Asso",
+        {
+          font: "Big Money-nw",
+          horizontalLayout: "default",
+          verticalLayout: "default",
+          width: 80,
+          whitespaceBreak: true,
+        },
+        function (err, data) {
+          if (err) {
+            console.log("Something went wrong...");
+            console.dir(err);
+            return;
+          }
+          console.log(data);
+        }
+      );
+}
+
+export { getAsciiArtText }
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index e12fb67a91ca045acc6af8ca64ecc94d6912500d..a27b1cd7d84130f6c51928b7882ee5a15856a7d1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,6 +1,6 @@
 {
     "compilerOptions": {
-      "target": "es6",
+      "target": "ES2022",
       "module": "esnext",
       "esModuleInterop": true,
       "moduleResolution": "node",