Clean code
Massive refactoring