- Refactoring implementation