I would call it `menu.new` to conform with the other libs we have.

Also, I would not handle them by name at all, but by reference to the object. You should not need to specify a name to work with them. You can solve this by having a copy of objects created with this module locally. See how the texts library does it.

What is `sub_key`?