Major (Solution) : added and reworking many code