xxx
type check