Refactoring WIP 9