improved class system