first part of new ArgParser [DO NOT TOUCH]