refactoring -- part 1
refactor - part2