reverted to OptionParser, adding booleans and default handling