Updated with Sam M's request for class categories