一些功能实现