class definition