introduce uuid generator trait.