refactoring #3