Acknowledgements

I would like to begin by thanking all of the staff of GCD for all of the training provided over the last four years.

I would like to thank Fergus Toolan for helping me form the ideas I would use for this project, and for not being worried about hurting my feelings when pointing out the many overcomplicated ideas that would have ended up here otherwise.

I would also like to apologise to my past programming lecturers for my ignorance in thinking "loops are easy". This project proved me wrong. Like most aspects of programming they are easy until you start using them as part of a more complex project. Needless to say I have learnt that ensuring the correctness of loops, and code in general, before commiting any changes can save a lot of late nights disecting code segments that seem perfect.

And thanks to anyone and everyone I may have encountered these past few months. I'm sure you know why.