organizing the argument parser
reorganizing again