Done a lot of work on the exception cases within the main menus. reseting the user where necessary