Refactor project to make convenient to expand