refactoring #4