better option parsing