public void Run(IMenu <T> menu) { // display options Writer.WriteLine("welcome to our menu:"); while (true) { Displayer.DisplayNenu(menu); // read option and validate int input = DataReader.Read(menu); if (input != -1) { // run option action var option = menu.Options.First(item => item.Key.Equals(input)).Value; bool?exitMenu = option.Run()?.ExitMenu; if (exitMenu != null && exitMenu == true) { break; } Writer.WriteLine("---------------------------------"); } else { Writer.WriteLine("the input is not valid"); } } }