Common classes to all engine implementations. Subdirectories contain the engine implementations.