added base class structure