Solved. Requires optimisation.