start refactoring
refactoring