start dependency refactoring