change the class name, improve getopt fun