Huge refactoring

DO NOT MERGE AS IS !

This is a work in progress, it still needs some development and lots of tests before it can be used as the main branch.

Some elements to check :

- [ ] Rename the module and remove old module