Add silent mode and getopt