option parsing system improved