Allow multiple submenus

Moved the submenu creation into separate methods which allows for a
recursive menu generation and therefore multiple submenus