Abstract base classes for the main components that make up a module.