refactor completion into Parser.ParseArgs
call p.printError only once
test required options
test an entire completion structure