updated with new class structure