Refactoring v2
merge