增加引用计数，重构部分代码