Last commit before submitting final results for the competition.  Needs severe tidying to make more presentable/usable.