version2
使用了重构