final changes, optimisation