fifth refactoring