Menu: initial version with tests