code: func (menu *Menu) AddSubmenu(commandID uint, label string, child *Menu) {
  	command := Command{
  		Method: "add_submenu",
  		Args: CommandArguments{
  			CommandID: commandID,
  			Label:     label,
  		},
  	}
  
  	// Assign Bidirectional navigation elements i.e. DoublyLinkedLists
  	child.Parent = menu
  	menuItem := MenuItem{
  		CommandID: commandID,
  		Label:     label,
  		SubMenu:   child,
  		Parent:    menu,
  	}
  	menu.Items = append(menu.Items, &menuItem)
  
  	menu.CallWhenChildStable(&command, child)
  }
docs: /*
  AddSubmenu adds a SubMenu to both the internal representation of menu and the external representation of menu
  */