type definition