Refactoring WIP 17