final rescale improvement and some optimisation