refactoring part 1
Merge branch 'feature'