Added support for command line arguments and set up the structure to use multiple algorithms.