干掉重复代码，抽象封装，去掉TODO