more fancy options parsing