More work on the requirements; now behaving like argparse more faithfully.