UI almost complete but not optimised.