MAJOR UPDATE *classes*