completed OptParser class