explicitly define type categories