use unique_ptr in ArgParser