base classes structure