Refactor instance variable argv

Let parse take it as an argument instead.
Refactor the error handling

Allow an error handler to be passed to parse() instead of throwing exceptions