with optparse