refactoring continues 3