squashed refactoring