refactor dependencies