Below several examples of where to add a new menu item: Menu view (*=selected item -=item without children): - A - B* - C After add: - A - B - Z* - C ---------- Menu view: - A - B -- B1* - C After add: - A - B -- B1 -- Z* - C ---------- Full menu: - A - B -- B1 - C Menu view (+=item with children) - A + B* - C After add: - A - B -- Z* -- B1 - C Why adding as the first and not the last? Adding as the first makes sure that the context remains recognizable. If we'd add the new node at the bottom, and if the list is long, the user may get confused as to "where" he is in the tree. ---------- Full menu: - A - B -- B1 --- B11 - C Menu view (+=item with children) - A + B* - C After add: - A - B -- Z* -+ B1 - C