修改并新增一些方法