Added argument parsing, comparison methods and split the parsing method into submethods