Basically I did a couple of things. I updated the Versions class to be much more useful. At first all it simply did was check if strings were equal essentially. And all I was checking was if a new version of iTunesDSM was being hosted. The Versions class is now a more full fledged class. Firstly, I now label iTunesDSM versions with the three integers pertaining to Major Version, Minor Version, and Bug fix version. I'm not sure if Bug fix version is the official term but it works for me.
Secondly, if I'm going to check for new iTunesDSM versions I might as well check for the version of iTunes itself, as any version below 9.0.2 will create duplicates more easily than the current version. In order to get the version of iTunes, I read the XML file, this required some additional code to the ITunesXML class and a few reworks of the methods. I now have a method that extracts a the value of an element given the line to look for. So I can basically search for iTunes specific items in the iTunes XML file. In order to check the version numbers I now parse this string for the three digits giving the version. Basically the string "9.0.2" will give the integers 9, 0, 2 and in one background task I now check for the latest version of iTunesDSM as well as the version of iTunes that is installed, and if iTunes is out of date, I warn the user before closing the program. I consider the newest version of iTunes as a necessity simply because you can't keep old versions of iTunes practically and therefore test them easily.
I also added a Data class today, to simply create a new "data" folder for the files that save user options and exclusions. It's got one method which should be really easy to test tomorrow.
Finally, I've updated the ReadMe document. It had a few grammar errors and some inconsistencies. Also as I've added/removed code, I've tried to keep the documentation up to date.
I'm working on version 0.6.3 as of now, so expect an update here soon.
Have a good weekend everyone.