code nettoyé et commenté. Il reste un bug avec le gui.