refactoring - 3