Refactoring: Separation of concerns and responsibilities