save data
Contributed by : Jérôme Jesse