1.update interface and implement
2.refactoring test project