setting up the base classes, etc