use ArgumentParser instead of OptionParser