Mass refactoring, still not fonctional but works better.
Fist version post refactoring that show something \o/