class structure complete