refactor constraint matrix handling
diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h
index c391361..213f6a7 100644
--- a/libasn1parser/asn1p_expr.h
+++ b/libasn1parser/asn1p_expr.h
@@ -107,6 +107,7 @@
 #include "asn1p_expr2uclass.h"
 
 struct asn1p_module_s;	/* Forward declaration */
+struct asn1p_ioc_table_s;	/* Forward declaration */
 
 /*
  * A named collection of types.
@@ -178,12 +179,8 @@
 	 */
 	asn1p_wsyntx_t *with_syntax;
 
-	/* Information Object Class matrix, specific for this class */
-	struct asn1p_ioc_matrix_s {
-		asn1p_ioc_row_t **row;
-		size_t rows;
-		size_t max_identifier_length;
-	} object_class_matrix;
+	/* Information Object Class table, specific for a class or object set */
+    struct asn1p_ioc_table_s *ioc_table;
 
 	/*
 	 * A tag.