Refactoring: extract services