Username support

If the user doesn't specify a username, a random one is picked.