fix duplicated parameter
no reason for version and authority to be mutable
add removeMethod and removeAttribute
relocate collectAllAttributes and make a collectAllMethods to match it
add isClassOf method
add isInstanceOf method
no reason for these to be private actually
just adding in some tests