begin base classes