This report was submitted as my final year dissertation for CS4701.