Joel Purra's master's thesis for a Master of Science in Information Technology and Engineering at Linköping University, Sweden