Refactoring WIP 10