Generalize base classes more
New version, new name