updated class structure