Extract some code from the parse method to make it easier to read
Add help argument detection

but not finalized yet.