added type and class definition module