Decoupling & refactoring