Refactoring WIP 5