enme refactorization, splitted in submodules