implemented optparse OptionParser