Allow multiple submenus

Moved the submenu creation into separate methods which allows for a
recursive menu generation and therefore multiple submenus
Merge branch 'Multiple-Submenus'