refactoring v.1