diff --git a/client/src/afficher.js b/client/src/afficher.js
new file mode 100644
index 0000000000000000000000000000000000000000..a9b1e7a25b44cd4a7db424d950b08ffe6d9a9ca3
--- /dev/null
+++ b/client/src/afficher.js
@@ -0,0 +1,48 @@
+import setHtml from './setHtml.js';
+import { Coordinate } from './Coordinate.js';
+
+export default class Afficher {
+	static afficherCredits(event) {
+		event.preventDefault();
+		document.querySelector('.divMain').innerHTML = setHtml.credits();
+		console.log(document.querySelector('.retourMenu'));
+		document
+			.querySelector('.retourMenu')
+			.addEventListener('click', Afficher.afficherMenu);
+	}
+
+	static afficherMenu(event) {
+		event.preventDefault();
+		console.log('afficherMenu');
+		document.querySelector('.divMain').innerHTML = setHtml.menu();
+		document
+			.querySelector('.buttonStart')
+			.addEventListener('click', Afficher.startGame);
+		document
+			.querySelector('.credits')
+			.addEventListener('click', Afficher.afficherCredits);
+	}
+
+	static afficherFinDePartie() {
+		canvas.style.display = 'none';
+		document.querySelector('.animation').style.display = '';
+		document.querySelector('.divMain').innerHTML = setHtml.finDePartie(
+			avatar,
+			t
+		);
+		document
+			.querySelector('.retourMenu')
+			.addEventListener('click', Afficher.afficherMenu);
+		return false;
+	}
+
+	static startGame(event) {
+		event.preventDefault();
+		const canvas = document.querySelector('.gameCanvas');
+		canvas.style.display = '';
+		document.querySelector('.divMain').innerHTML = setHtml.vide();
+		document.querySelector('.animation').style.display = 'none';
+		const canvasSize = new Coordinate(canvas.clientWidth, canvas.clientHeight);
+		return canvasSize;
+	}
+}
diff --git a/client/src/avatar.js b/client/src/avatar.js
index 3ed74c8b995df3fa3e3ebf4ce7987c0696d4c983..bcaa9e7ad71eea9178df5366a651156caee41442 100644
--- a/client/src/avatar.js
+++ b/client/src/avatar.js
@@ -65,10 +65,6 @@ export class Avatar extends Entite {
 		return this.vies;
 	}
 
-	getScore() {
-		return this.score;
-	}
-
 	getNom() {
 		return this.nom;
 	}
diff --git a/client/src/main.js b/client/src/main.js
index 590aa6da6241bf43890fe6ac42f82788d14a4da2..a088235db4223566643c97c8e6bf7df86a7ca2af 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -1,39 +1,25 @@
 import { Avatar } from './avatar.js';
 import { io } from 'socket.io-client';
-import setHtml from './setHtml.js';
 import draw from './draw.js';
-import { Coordinate } from './Coordinate.js';
-import { bonusImages, colors } from './utils.js';
+import { bonusImages } from './utils.js';
 import Render from './render.js';
+import Afficher from './afficher.js';
 
 const socket = io();
 let min = 0;
 let sec = 0;
+let renderObject = new Render();
 
 const canvas = document.querySelector('.gameCanvas');
 const context = canvas.getContext('2d');
 const avatar = new Avatar('julien', 1);
-const imageMortier = new Image();
-const imageProjectile = new Image();
-const imageEnemi = new Image();
-const imageEnemi2 = new Image();
-const background = new Image();
-const imageCoeur = new Image();
 
-imageMortier.src = '/images/mortier.png';
-imageProjectile.src = '/images/bill.png';
-imageEnemi.src = '/images/koopa.png';
-imageEnemi2.src = '/images/bob_omb.png';
-background.src = '/images/background2.webp';
-imageCoeur.src = '/images/heart1.webp';
-let gameStarted = false;
-
-imageMortier.addEventListener('load', () => {
-	avatar.setImageCanvas(imageMortier, canvas);
+renderObject.imageMortier.addEventListener('load', () => {
+	avatar.setImageCanvas(renderObject.imageMortier, canvas);
 	requestAnimationFrame(render);
 });
 
-imageEnemi.addEventListener('load', () => {
+renderObject.imageEnemi.addEventListener('load', () => {
 	requestAnimationFrame(render);
 });
 
@@ -45,45 +31,15 @@ setInterval(function () {
 }, 1000);
 
 document.querySelector('.buttonStart').addEventListener('click', startGame);
-document.querySelector('.credits').addEventListener('click', afficherCredits);
-
-function afficherCredits(event) {
-	event.preventDefault();
-	document.querySelector('.divMain').innerHTML = setHtml.credits();
-	const retour = document.querySelector('.retourMenu');
-	retour.addEventListener('click', afficherMenu);
-}
-
-function afficherMenu(event) {
-	event.preventDefault();
-	document.querySelector('.divMain').innerHTML = setHtml.menu();
-	document.querySelector('.buttonStart').addEventListener('click', startGame);
-	document.querySelector('.credits').addEventListener('click', afficherCredits);
-}
-
-function afficherFinDePartie() {
-	gameStarted = false;
-	canvas.style.display = 'none';
-	document.querySelector('.animation').style.display = '';
-	document.querySelector('.divMain').innerHTML = setHtml.finDePartie(avatar, t);
-	document.querySelector('.retourMenu').addEventListener('click', afficherMenu);
-}
+document
+	.querySelector('.credits')
+	.addEventListener('click', Afficher.afficherCredits);
 
 function startGame(event) {
-	gameStarted = true;
-	socket.emit('start', gameStarted);
-	event.preventDefault();
-	canvas.style.display = '';
-	document.querySelector('.divMain').innerHTML = setHtml.vide();
-	document.querySelector('.animation').style.display = 'none';
-	const canvasSize = new Coordinate(canvas.clientWidth, canvas.clientHeight);
+	const canvasSize = Afficher.startGame(event, socket, canvas);
 	socket.emit('canvasSize', canvasSize);
 }
 
-setInterval(() => {
-	socket.emit('start', gameStarted);
-}, 1000 / 16);
-
 const canvasResizeObserver = new ResizeObserver(() => resampleCanvas());
 canvasResizeObserver.observe(canvas);
 
@@ -115,26 +71,12 @@ let newBonus = [];
 
 function render() {
 	context.clearRect(0, 0, canvas.width, canvas.height);
-	context.drawImage(background, 0, 0, canvas.width, canvas.height);
+	renderObject.renderBackground(canvas);
 	context.font = '40pt New Super Mario Font U';
 	for (let i = 1; i < avatars.length; i++) {
 		if (avatars[i] != undefined) {
-			context.fillStyle = colors[i - 1];
-			const x = 10 + i * 100;
-			if (avatars[i].score != undefined) {
-				context.fillText(avatars[i].score, x, 50);
-			}
-			imageCoeur.src = `/images/heart${i}.webp`;
-			console.log(imageCoeur.src);
-			for (let j = 0; j < avatars[i].vies; j++) {
-				context.drawImage(
-					imageCoeur,
-					avatars[i].x + (avatars[i].vies - j) * 20 - 15,
-					avatars[i].y + imageMortier.height,
-					20,
-					20
-				);
-			}
+			renderObject.renderScores(i, avatars[i], context);
+			renderObject.renderVies(avatars, context, i);
 		}
 	}
 
@@ -143,21 +85,9 @@ function render() {
 	context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50);
 
 	for (let avatarId in avatars) {
-		Render.renderProjectile(
-			context,
-			avatar,
-			avatars,
-			avatarId,
-			imageProjectile
-		);
+		renderObject.renderProjectile(context, avatar, avatars, avatarId);
 		for (let avatarId in avatars) {
-			Render.renderProjectile(
-				context,
-				avatar,
-				avatars,
-				avatarId,
-				imageProjectile
-			);
+			renderObject.renderProjectile(context, avatar, avatars, avatarId);
 		}
 		socket.on('bonusArray', data => {
 			newBonus = data;
@@ -173,21 +103,13 @@ function render() {
 			newEnemis = data;
 		});
 		newEnemis.forEach(enemi => {
-			Render.renderEnnemi(
-				canvas,
-				context,
-				imageEnemi,
-				imageEnemi2,
-				enemi.x,
-				enemi.y,
-				enemi
-			);
+			renderObject.renderEnnemi(canvas, context, enemi.x, enemi.y, enemi);
 		});
 		socket.on('bonusArray', data => {
 			newBonus = data;
 		});
 		newBonus.forEach(bonus => {
-			Render.renderBonus(
+			renderObject.renderBonus(
 				canvas,
 				context,
 				bonusImages[bonus.choix],
diff --git a/client/src/render.js b/client/src/render.js
index 03c4bb2eecfb009f3981cc6ed92f4abb8cbc7aec..eb984ac02c0c7b12cd543af68d7b4fcf4a925d61 100644
--- a/client/src/render.js
+++ b/client/src/render.js
@@ -1,27 +1,76 @@
 import draw from './draw.js';
+import { colors } from './utils.js';
 export default class Render {
-	static renderProjectile(context, avatar, avatars, avatarId, imageProjectile) {
+	imageEnemi;
+	imageEnemi2;
+	imageProjectile;
+	imageCoeur;
+	imageMortier;
+	background;
+
+	constructor() {
+		this.imageEnemi = new Image();
+		this.imageEnemi2 = new Image();
+		this.imageProjectile = new Image();
+		this.imageCoeur = new Image();
+		this.imageMortier = new Image();
+		this.background = new Image();
+		this.imageProjectile.src = '/images/bill.png';
+		this.imageEnemi.src = '/images/koopa.png';
+		this.imageEnemi2.src = '/images/bob_omb.png';
+		this.imageMortier.src = '/images/mortier.png';
+		this.background.src = '/images/background2.webp';
+	}
+
+	renderProjectile(context, avatar, avatars, avatarId) {
 		context.drawImage(avatar.image, avatars[avatarId].x, avatars[avatarId].y);
 		if (avatars[avatarId].projectiles != undefined) {
 			avatars[avatarId].projectiles.forEach(projectile => {
-				context.drawImage(imageProjectile, projectile.x, projectile.y);
+				context.drawImage(this.imageProjectile, projectile.x, projectile.y);
 			});
 		}
 	}
 
-	static renderEnnemi(canvas, context, imageEnemi, imageEnemi2, x, y, enemi) {
+	renderEnnemi(canvas, context, x, y, enemi) {
 		if (enemi.difficulté == 1) {
-			draw(canvas, context, imageEnemi, x, y);
+			draw(canvas, context, this.imageEnemi, x, y);
 		} else if (enemi.difficulté == 2) {
-			draw(canvas, context, imageEnemi2, x, y);
+			draw(canvas, context, this.imageEnemi2, x, y);
 		}
 	}
 
-	static renderBonus(canvas, context, imgsrc, x, y) {
+	renderBonus(canvas, context, imgsrc, x, y) {
 		let img = new Image();
 		img.src = imgsrc;
 		img.width = 75;
 		img.height = 75;
 		draw(canvas, context, img, x, y);
 	}
+
+	renderScores(i, avatar, context) {
+		context.fillStyle = colors[i - 1];
+		const x = 10 + i * 100;
+		if (avatar.score != undefined) {
+			context.fillText(avatar.score, x, 50);
+		}
+	}
+
+	renderVies(avatars, context, i) {
+		this.imageCoeur.src = `/images/heart${i}.webp`;
+		for (let j = 0; j < avatars[i].vies; j++) {
+			context.drawImage(
+				this.imageCoeur,
+				avatars[i].x + (avatars[i].vies - j) * 20 - 15,
+				avatars[i].y + this.imageMortier.height,
+				20,
+				20
+			);
+		}
+	}
+
+	renderBackground(canvas) {
+		canvas
+			.getContext('2d')
+			.drawImage(this.background, 0, 0, canvas.width, canvas.height);
+	}
 }