bug + 重构