rework commandline parser, error handling