+subclassing data types