Refactoring WIP 4