+subclassing
actually use the UUID type