Refactorting WIP