Ported the menu func from the reflect project
Merge 'feature/menu'