Refactoring
Merge branch 'refact' into core