Refactor a lot !!!