now uses optionparser