modify from E:
modified from D:
fix conflict
Merge branch 'dev'