split rule implementation
class split, base interface,  base type rules