command line parser improved