Refractoring
Lot of work!