add extensible conversion mechanism for option args
support arbitrary amounts of args