start refactoring
Merge branch 'dependency'