WIP
Refactoring
Refactoring