improve command line parsing