added various foolproofing to menu flow