put the argument parser in from_cmdline instead of its own subclass