Version 0.1. Last worked on around April. Basic level of optimisation.