always use option parser