you need to check interface_exists and trait_exists too