better living through user defined types