增加两个底层基类
代码健壮性修改