refactor, step #2
refactoring, step #3