 
     public function isHTMLTag(tagName:String):Boolean
     {
-        return allTags.contains(tagName.toLowerCase());
-    }
-
-    public function isEmptyTag(tag:String):Boolean
-    {
-        return empty.contains(tag.toLowerCase());
+        return inTagSet(allTags, tagName);
+    }
+
+    public function isEmptyTag(tagName:String):Boolean
+    {
+        return inTagSet(empty, tagName);
+    }
+
+    public function isBlockTag(tagName:String):Boolean
+    {
+        return inTagSet(block, tagName);
+    }
+
+    public function isInlineTag(tagName:String):Boolean
+    {
+        return inTagSet(inline, tagName);
+    }
+
+    public function isAttrOptionalTag(tagName:String):Boolean
+    {
+        return inTagSet(attrOptionalTags, tagName);
     }
 
     public function isTagClosedBy(openTag:String, nextTag:String):Boolean

        block.addIterable(heading);
        block.addIterable(list);

        inline = fontstyle.clone();
        inline.addIterable(phrase);
        inline.addIterable(special);
        inline.addIterable(formctrl);


            return false;
        }
        return matcher.match(nextTag.toLowerCase());
    }

    public function isTextEntity(query:String):Boolean
