Re-organised option parsing to make proper use of parser. Added better help text and validtion