modified class structure