Better error handling in argument parser