refactoring with concerns