Refactor 1

Refactoring
Refactor 2

Refactoring...
Refactor 3

Refactorization finished
Merge branch 'refactor1'