introduced OptParse to manage parameters