optimise the lists