添加函数，基本框架完成，但仍需要debug，