类型定义，以及state