updated class system