重构+改bug