argsparse refactor