Très gros commit alors je vais pas trop décrire, à vous de découvrir.