changes for optimisation, in progress