added gnu getopt for better parsing and greyscale fun!