part4 base classes