refactoring: dependencies are now easier to understand