optimisation code (suppr forgot)