new class structure and reporting mechanism