Refonte du code grâce à jeromej.