Refactor
WIP