It's not clear to me why are renaming these base classes - just because they have no abstract methods doesn't mean it makes sense to allow instantiation of the base class.