better option error handling