Allow the UUID generation to get easily overwritten by a subclass
(e.g. to use SecureRandom.uuid)