refactoring 2
refactoring 2