重构，之前做复杂了