This is Malcolm Cameron's MSc thesis.