@Override
	public void run() {

		TableManager tableManager = new TableManager("tables.dat");
		TableBoundary tableBoundary = new TableBoundary(tableManager);

		StaffManager staffManager = new StaffManager("staffs.dat");
		StaffBoundary staffBoundary = new StaffBoundary(staffManager);

		MenuManager menuManager = new MenuManager("menu.dat");
		MenuBoundary menuBoundary = new MenuBoundary(menuManager);

		MemberManager memberManager = new MemberManager("members.dat");
		MemberBoundary memberBoundary = new MemberBoundary(memberManager);

		ReservationManager reservationManager = new ReservationManager(tableManager,
				"reservations.dat");
		ReservationBoundary reservationBoundary = new ReservationBoundary(
				reservationManager);

		OrderManager orderManager = new OrderManager(menuManager,staffManager, tableManager, "orders.dat");
		OrderBoundary orderBoundary = new OrderBoundary(orderManager);

		InvoiceManager invoiceManager = new InvoiceManager(orderManager, restaurantManager, memberManager, reservationManager, "invoices.dat");
		InvoiceBoundary invoiceBoundary = new InvoiceBoundary(invoiceManager);

        // print main menu

		// while true
//		tableBoundary.run();
//		staffBoundary.run();

//        staffBoundary.run();
		int choice;
		Scanner sc = new Scanner(System.in);
		do {
            showMainMenu();
            while (true) {
                try {
                    String input = sc.next();
                    choice = Integer.parseInt(input);
                    break;
                } catch (NumberFormatException ne) {    //handle invalid input
                    System.out.print("Invalid choice, choose again: ");
                }
            }

            switch (choice) {
			case 1:
				menuBoundary.run();
				break;
			case 2:
				memberBoundary.run();
				break;
			case 3:
				reservationBoundary.run();
				break;
			case 4:
				orderBoundary.run();
				break;
			case 5:
				invoiceBoundary.run();
				break;
			case 6:
                System.out.println("Saving system data");
                tableManager.save();
                staffManager.save();
				menuManager.save();
				memberManager.save();
				reservationManager.save();
				orderManager.save();
				invoiceManager.save();
				restaurantManager.save();
				System.out.println("Bye");
				break;
			default:
				break;
			}
		} while (choice != 6);
		// If the user chooses to perform action about menu

		// If the user chooses to perform action about member

		// quit

		// save other managers
	}