working refactoring
refactoring