Code refactoring
Merge branch 'new-features'