diff --git a/include/gridview.hpp b/include/gridview.hpp
index 1d1e367db22b2c4970036398c11366f59cf76318..7779c0b3d9896f2f54b626f49e309825283bc1b6 100644
--- a/include/gridview.hpp
+++ b/include/gridview.hpp
@@ -16,6 +16,7 @@ Cette classe représente le widget utilisé pour l'affichage et l'interaction av
 
 #include <QFrame>
 #include <QGraphicsView>
+#include <QLabel>
 
 #include <QGraphicsRectItem>
 
@@ -156,6 +157,7 @@ private:
     void select_all();
 
     void click_on(Coord coord);
+    void update_current_mouse_pos(Coord coord);
 
     const QPixmap &grid_pixmap() const;
 
@@ -173,7 +175,9 @@ private:
     History m_undo_history;
     QImage m_grid_image;
     QPixmap m_grid_pixmap;
+    QLabel* m_mouse_pos_label;
     Grid m_grid;
+    Coord m_last_mouse_pos;
     bool m_in_toggle_mode;
     std::vector<std::pair<unsigned, unsigned>> m_toggle_states;
     std::vector<QGraphicsRectItem*> m_selection_rects;
diff --git a/src/gridview.cpp b/src/gridview.cpp
index f6cb22b9f889b9551d453fbbfd6e83521a7160f4..5f6d37ccc30da743e8155d81d0eb5665bce2812c 100644
--- a/src/gridview.cpp
+++ b/src/gridview.cpp
@@ -91,7 +91,6 @@ public:
     DragDropHandlerItem(GridView& in_gridview, QGraphicsItem *parent = nullptr)
         : QGraphicsRectItem(0, 0, 1, 1, parent), m_grid_view(in_gridview)
     {
-        setAcceptHoverEvents(true);
         setAcceptDrops(true);
 
         setPen(Qt::NoPen);
@@ -186,8 +185,9 @@ void GridGraphicsView::mousePressEvent(QMouseEvent *event)
         QGraphicsView::mousePressEvent(event);
     }
     else
-
         QGraphicsView::mousePressEvent(event);
+
+    m_gridview.update_current_mouse_pos(coord);
 }
 
 void GridGraphicsView::mouseMoveEvent(QMouseEvent *event)
@@ -196,6 +196,8 @@ void GridGraphicsView::mouseMoveEvent(QMouseEvent *event)
     if (!sceneRect().contains(item_pos) || !sceneRect().contains(mapToScene(m_last_mouse_pos)))
         return;
 
+    Coord coord = Coord{(int)item_pos.x(), (int)item_pos.y()};
+
     if (!m_gridview.in_toggle_mode() && QGuiApplication::keyboardModifiers() == Qt::NoModifier && event->buttons() == Qt::LeftButton)
     {
         draw_bresenham(mapToScene(m_last_mouse_pos), item_pos);
@@ -210,6 +212,7 @@ void GridGraphicsView::mouseMoveEvent(QMouseEvent *event)
         QGraphicsView::mouseMoveEvent(event);
 
     m_last_mouse_pos = event->pos();
+    m_gridview.update_current_mouse_pos(coord);
 }
 
 void GridGraphicsView::drawForeground(QPainter *painter, const QRectF &)
@@ -297,6 +300,8 @@ GridView::GridView(QWidget *parent)
 
     QGridLayout *layout = new QGridLayout;
     layout->addWidget(m_view);
+    m_mouse_pos_label = new QLabel("");
+    layout->addWidget(m_mouse_pos_label);
     layout->addWidget(new QLabel("Clic gauche : éditer; Clic droit : sélectionner", this));
     layout->addWidget(new QLabel("Maintenir SHIFT pour déplacer la grille; Molette ou CTRL+/CTRL- pour zoomer", this));
     setLayout(layout);
@@ -316,6 +321,7 @@ GridView::GridView(QWidget *parent)
     Alphabet alph(state{stateColor{255, 255, 255}, "Dead"});
     alph.newEtat(state{stateColor{0, 0, 255}, "Alive"});
     set_alphabet(alph);
+    update_current_mouse_pos({0, 0});
 
     connect(m_zoom, &detail::Graphics_view_zoom::zoomed, this, [this]
             {
@@ -447,17 +453,20 @@ void GridView::load_grid(const Grid &grid)
     {
         for (int j = 0; j < (int)m_height; ++j)
         {
-            QColor color = stateColor_to_QColor(m_alph.getState(grid.get_state(Coord{i, j})).getColor());
+            QColor color = stateColor_to_QColor(m_alph.getState(grid.get_state(Coord{i, j}) % m_alph.taille()).getColor());
             m_grid_image.setPixelColor(i, j, color);
+            m_grid.set_cell(Coord{i, j}, grid.get_state(Coord{i, j}) % m_alph.taille());
         }
     }
     m_grid_pixmap.convertFromImage(m_grid_image);
     m_scene->setSceneRect(QRectF(0, 0, m_width, m_height));
     m_drag_drop_handler->setRect(QRectF(0, 0, m_width, m_height));
+    update_current_mouse_pos(m_last_mouse_pos);
 }
 
 void GridView::set_cell_state(Coord pos, unsigned state)
 {
+    state %= m_alph.taille();
     QColor color = stateColor_to_QColor(m_alph.getState(state).getColor());
     m_grid_image.setPixelColor(pos.x, pos.y, color);
     m_grid.set_cell(pos, state);
@@ -553,6 +562,14 @@ void GridView::click_on(Coord coord)
     }
 }
 
+void GridView::update_current_mouse_pos(Coord coord)
+{
+    m_last_mouse_pos = coord;
+    auto state_label = m_alph.getState(m_grid.get_state(coord)).getStateLabel();
+    m_mouse_pos_label->setText(QString("Mouse position : %1,%2 : \"%3\"").arg(coord.x).arg(coord.y).arg(
+        QString::fromStdString(state_label)));
+}
+
 void GridView::paste_structure_at(Coord origin, const Structure &s)
 {
     push_history();
diff --git a/src/interface.cpp b/src/interface.cpp
index 146a5cae519f901d810e1223064ab99ec5ea04b0..b95ee7db47cba96b5a753b07fc671343ace2d982 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -401,8 +401,6 @@ void MainWindow::load_model(const QJsonObject &obj)
             prop->accept(visit);
     }
 
-    ui_update_alphabet(alpha);
-
     // On transfère la propriété de ces pointeurs vers Simulation, qui en est désormais propriétaire pour l'exécution de l'automate
     simulation.setNeighborhoodRule(m_neighborhood_rule);
     simulation.setTransitionRule(m_transition_rule);