fixed remaining issues with canLevel, type/subtype switching.