Reorganize argument parser