updated option parser