first refactoring
Merge branch 'first-refactor'