add 一大堆功能