Robot revision

So this is the abusive method that really needs help. Can you find a way to remove the `generate_char` and `generate_num` lambdas? They don't really belong here. Also, if you allow only one method to set `@name`, you can remove that part from here and keep it all in one place.