refactoring 8