* also consider EnumDeclaration
* some performance improvement