有些需要全部自己定义 有些不用