Restructuration du code + ajout interface