better command line argument checks