Much more correct command line argument parsing