重构后的一系列debug