rework for Class model