user defined datatypes: enumerations, Structures, Classes & Objects