Refactoring WIP 18