Added inheritance and final scope checks

bug:
classType subtyping bug
suggestion: get rid of the list, use subTypeOf() recurively