base classes changes and additions