diff --git a/gap/gaptypes.g b/gap/gaptypes.g
index 283a805d897e95d3213e718071d426d42156dd96..a07c60f3e9ea9dbcf15a16fff86f8c4a28f28fe0 100644
--- a/gap/gaptypes.g
+++ b/gap/gaptypes.g
@@ -15,23 +15,50 @@ GAPFilterToFilterType := function(fid)
     elif INFO_FILTERS[fid] in FNUM_PROS then
         return "GAP_Property";
     elif INFO_FILTERS[fid] in FNUM_TPRS then
-        return "GAP_Tester";
+        return "GAP_TrueProperty";
     else
         return "GAP_Filter";
     fi;
 end;
 
+GAPAndFilterUnpack := function(t)
+    local res;
+
+    res := [];
+
+    if IsOperation(t) then
+        if (IsInt(FLAG1_FILTER(t)) and IsInt(FLAG2_FILTER(t)))
+            then
+            Add(res, NAME_FUNC(t));
+        else
+            Append(res, GAPTypeUnpack(FLAG1_FILTER(t)));
+            Append(res, GAPTypeUnpack(FLAG2_FILTER(t)));
+        fi;
+    fi;
+    return res;
+end;
+
+
 # Make GAP Type graph as a record
 GAPTypesInfo := function()
-    local  res, lres, i, ff;
+    local  res, lres, i, f, ff;
 
     res := rec();
 
     for i in [1..Length(FILTERS)] do
         if IsBound(FILTERS[i]) then
             lres := rec();
+            f := FILTERS[i];
 
             lres.type := GAPFilterToFilterType(i);
+            # if the filter is an attribute and FLAG1_FILTER of the filter
+            # is not equal to it, then this is a tester.
+            if lres.type = "GAP_Attribute" then
+                if 
+                    (FLAG1_FILTER(f)) <> 0 and (FLAG1_FILTER(f) <> i) then
+                    lres.testerfor := NAME_FUNC(FILTERS[FLAG1_FILTER(f)]);
+                fi;
+            fi;
 
             ff := TRUES_FLAGS(WITH_IMPS_FLAGS(FLAGS_FILTER(FILTERS[i])));
             lres.implied := List(ff,
@@ -45,7 +72,13 @@ GAPTypesInfo := function()
             res.(NAME_FUNC(FILTERS[i])) := lres;
         fi;
     od;
+    for i in [1..Length(ATTRIBUTES)] do
+        lres := rec();
+        lres.type := "GAP_Attribute";
+        lres.filters := GAPAndFilterUnpack(ATTRIBUTES[i][2]);
 
+        res.(ATTRIBUTES[i][1]) := lres;
+    od;
     return res;
 end;