refactoring: doTheRest