a more complex UID generator