Refactoring part1
Refactoring 2